#navi(../)
* ローテーションされるファイルをtailする方法 [#kcff4ae9]
tail -f ファイル名 でログなどを監視していると、ログのファイルサイズが規定のサイズになり、~
自動的に別名にされ(ローテイト)され、tail -f では見れなくなってしまいます。~
この代わりに''-F''オプションを使うとこにより、ローテイトされても指定したファイルを関しすることができます。~
以下に実際に動作確認を行った例を記します。
#contents
* tail -F ファイル名を試してみる [#v28a89fc]
以下に tail -F を試した実行例を記します。
+ ターミナルを2つ開きます。~
tail -F コマンドを実行するターミナルをターミナル(A)、ファイル操作をするターミナルをターミナル(B)として記します。
+ ターミナル(A)で以下のコマンドを実行します。
tail -F /tmp/test.log
以下、実行時の出力です。
$ tail -F /tmp/test.log
tail: `/tmp/test.log' を 読み込み用に開くことが出来ません: そのようなファイルやディレクトリはありません
警告メッセージが出力されますが、tailコマンドは実行されています。~
ちなみに、-fオプションだと以下のようなエラーが出力されます。
$ tail -f /tmp/test.log
tail: `/tmp/test.log' を 読み込み用に開くことが出来ません: そのようなファイルやディレクトリはありません
tail: ファイルが全く残っていません
$
+ターミナル(B)から、/tmp/test.log ファイルに文字列を追記してみる。
以下のコマンドで/tmp/test.logに文字列を追記してみます。
$ date > /tmp/test.log
$ echo HELLO >> /tmp/test.log
+ ターミナル(A)には、以下のメッセージが表示され、追記した文字列がターミナル(A)に表示されます。
tail: `/tmp/test.log' が現れました。新しいファイルの終端を追跡します
2016年 12月 8日 木曜日 19:02:42 JST
HELLO
+ ターミナル(B)でファイルを削除する。
$ rm /tmp/test.log
+ ターミナル(A)には以下のメッセージが表示されます。
tail: `/tmp/test.log' はアクセス不能になりました: そのようなファイルやディレクトリはありません
+ 再度、ターミナル(A)で監視ファイルを作成し文字列を追記してみる。
$ echo SAKURA > /tmp/test.log
+ ターミナル(A)に追記した文字列が表示されます。
SAKURA
尚、停止したい場合は、Ctrl+Cを押してください。
以上のようにwebサーバのログやDBのログなどを関ししているとき、自動的にローテイトされてしまうので、~
tailの-Fオプションを使用することにより、ファイルが削除されたり、リネームされたりしても、~
常に指定したファイルを監視することができます。
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)