#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)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS