それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

tail コマンドがファイルの削除、作成時でも動くようにする

tail -f コマンドを使うとファイルの削除で動作が止まる。

tail -f /path/to/log

で ログファイルを見ているときに、別のプロセスでファイルが消えたら

ファイルが消えたら、動作が止まる。

mv /path/to/log /dev/null
rm /path/to/log 
echo hello > /path/to/log 

これはファイルディスクリプタだけを見ているので、ファイルが消えるとログを追尾できない

-F / –follow=name を使う

tail -F /path/to/log
tail --follow=name a.log

これでパス名のファイルの有無などを監視してくれるようになる。

tail -f は inotify や fsevent を見てると思うので、基本的には -F で良い気がする。

man tail

-f, --follow[={name|descriptor}]
              output appended data as the file grows;

              an absent option argument means 'descriptor'

-F     same as --follow=name --retry

inotify を見てる話はman にそう書いてる。

      -s, --sleep-interval=N
              with -f, sleep for approximately N seconds (default 1.0) between iterations; with inotify  and
              --pid=P, check process P at least once every N seconds