tail -Fを使いましょう2012.06.15 hktstudy   やまだつよし
自己紹介やまだつよし●twitter: @minimum2scp●fb: fb.me/minimum2scp●インフラエンジニア●Debian,Rubyとかが好き
監視の初歩: ログを見る % tail -f /var/log/foo.log
ログのローテーション  ● logrotate  ● 各言語のロガー% ls -lt /var/log/syslog*-rw-r----- 1 root adm 212489   6月   16   14:15   /var/log/syslo...
tail -f でログを見るtail -f でログを見てる途中でログのローテーションが起きてしまうとそこから新しいログが画面に出ない
デモ: tail -f% touch /tmp/a% tail -f /tmp/a &% ruby -rlogger -e logger=Logger.new "/tmp/a",7, 1024loop {   logger.info "test...
tail -f から tail -F へtail -f ではログがローテーションされたことに気付くことはできないtail -F にすると、ログローテーションでログファイルが切り替わったことを検知して、ログファイルをオープンしなおして続行してくれる
デモ: tail -F% touch /tmp/a% tail -F /tmp/a &% ruby -rlogger -e logger=Logger.new "/tmp/a",7, 1024loop {   logger.info "test...
man 1 tailTAIL(1)DESCRIPTION    -f, --follow[={name|descriptor}]          output appended data as the file grows; -f, --fo...
man 1 tailTAIL(1)DESCRIPTION    With --follow (-f), tail defaults to following the file descriptor,    which means that ev...
日本語でおk
LANG=ja_JP.UTF-8 man 1 tailTAIL(1)説明  -f, --follow[={name|descriptor}]        ファイルが大きくなるに合わせて出力にデータを追加する         -f, --fol...
LANG=ja_JP.UTF-8 man 1 tailTAIL(1)DESCRIPTION   --follow (-f) を使用すると、tail はデフォルトでファイル記述子を   追跡します。 このため tail で追跡しているファイルの名...
tail -F の実装● inotify を使ってファイルシステムのイベントを監  視している(たぶん)● GNU coreutils の src/tail.c の recheck のあた  り(たぶん)● inotify は便利な道具
まとめ: tail -F を使いましょうlogrotateは早朝のcron.dailyで起動されているので、深夜から早朝のメンテナンスのときには tail -f ではなくtail -F を使ってログを見ましょう
Upcoming SlideShare
Loading in...5
×

[20120615 hktstudy] tail -Fを使いましょう

1,655

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,655
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

[20120615 hktstudy] tail -Fを使いましょう

  1. 1. tail -Fを使いましょう2012.06.15 hktstudy やまだつよし
  2. 2. 自己紹介やまだつよし●twitter: @minimum2scp●fb: fb.me/minimum2scp●インフラエンジニア●Debian,Rubyとかが好き
  3. 3. 監視の初歩: ログを見る % tail -f /var/log/foo.log
  4. 4. ログのローテーション ● logrotate ● 各言語のロガー% ls -lt /var/log/syslog*-rw-r----- 1 root adm 212489 6月 16 14:15 /var/log/syslog-rw-r----- 1 root adm 585170 6月 16 06:25 /var/log/syslog.1-rw-r----- 1 root adm 38089 6月 15 06:25 /var/log/syslog.2.gz-rw-r----- 1 root adm 49989 6月 14 06:25 /var/log/syslog.3.gz-rw-r----- 1 root adm 37739 6月 13 06:25 /var/log/syslog.4.gz-rw-r----- 1 root adm 34673 6月 12 06:25 /var/log/syslog.5.gz-rw-r----- 1 root adm 42538 6月 11 06:25 /var/log/syslog.6.gz-rw-r----- 1 root adm 44490 6月 10 06:25 /var/log/syslog.7.gz
  5. 5. tail -f でログを見るtail -f でログを見てる途中でログのローテーションが起きてしまうとそこから新しいログが画面に出ない
  6. 6. デモ: tail -f% touch /tmp/a% tail -f /tmp/a &% ruby -rlogger -e logger=Logger.new "/tmp/a",7, 1024loop { logger.info "test" sleep 1}
  7. 7. tail -f から tail -F へtail -f ではログがローテーションされたことに気付くことはできないtail -F にすると、ログローテーションでログファイルが切り替わったことを検知して、ログファイルをオープンしなおして続行してくれる
  8. 8. デモ: tail -F% touch /tmp/a% tail -F /tmp/a &% ruby -rlogger -e logger=Logger.new "/tmp/a",7, 1024loop { logger.info "test" sleep 1}
  9. 9. man 1 tailTAIL(1)DESCRIPTION -f, --follow[={name|descriptor}] output appended data as the file grows; -f, --follow, and --follow=descriptor are equivalent -F same as --follow=name --retry --retry keep trying to open a file even when it is or becomes inaccessible; useful when following by name, i.e., with --follow=name
  10. 10. man 1 tailTAIL(1)DESCRIPTION With --follow (-f), tail defaults to following the file descriptor, which means that even if a tailed file is renamed, tail will continue to track its end. This default behavior is not desirable when you really want to track the actual name of the file, not the file descriptor (e.g., log rotation). Use --follow=name in that case. That causes tail to track the named file in a way that accommodates renaming, removal and creation.
  11. 11. 日本語でおk
  12. 12. LANG=ja_JP.UTF-8 man 1 tailTAIL(1)説明 -f, --follow[={name|descriptor}] ファイルが大きくなるに合わせて出力にデータを追加する -f, --follow および --follow=descriptor は 等価になる -F --follow=name --retry と等価 --retry ファイルがアクセスできるか否かに関わらずファイルを開くこと を試みる。これは --follow=name と併せて使用し、 ファイル名で 追跡するときに役に立つ
  13. 13. LANG=ja_JP.UTF-8 man 1 tailTAIL(1)DESCRIPTION --follow (-f) を使用すると、tail はデフォルトでファイル記述子を 追跡します。 このため tail で追跡しているファイルの名前が変更 されたとしても、 tail は 元のファイルの終端を追跡し続けます。 このデフォルトの動 作はファイル記述子 ではなく、実際にある 名前を持つファイルを追跡する場合には望ましくありませ ん (例: ロ グのローテーションなど)。そのような場合には --follow=name を使 用してください。これにより名前の変更、削除、作成などに あわせて名前のついた ファイルの末尾を追跡するようになります。
  14. 14. tail -F の実装● inotify を使ってファイルシステムのイベントを監 視している(たぶん)● GNU coreutils の src/tail.c の recheck のあた り(たぶん)● inotify は便利な道具
  15. 15. まとめ: tail -F を使いましょうlogrotateは早朝のcron.dailyで起動されているので、深夜から早朝のメンテナンスのときには tail -f ではなくtail -F を使ってログを見ましょう
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×