歡迎您光臨本站 註冊首頁

關於命令tail的參數-F的使用 .

←手機掃碼閱讀     火星人 @ 2014-03-03 , reply:0

關於命令tail的參數-F的使用 .

關於命令tail的參數-F的使用 .






我們經常會用到用」-f」的參數來監控log文件(看著log一屏屏的翻,比較有成就感:)
好像在實時log分析的程序里,大家的思路大多也是用tail -f某個log文件
然後再用管道傳給程序處理,但這樣有一個問題:
就是當系統logrotate這個log文件的時候,系統會重建這個log文件
在這個時候,如果監控這個log文件用的是命令」tail -f「的話
就會接不到任何新的內容
一般的做法是在這個log文件logrotate之前把監控的腳本程序(包含tail -f)都kill掉,在logrotate之後呢
再重新起起來,但是這裡也許有一種更好的解決方法:用參數」-F」代替」-f」
「-F「相當於」–retry -f」
用這個參數,就算原來的log文件被重建
tail還能重新打開新的log文件,繼續接收log內容
我做過簡單的測試,在一個shell里用一個腳本不停地往一個log文件里寫東西
在另外一個shell里用tail -f來讀,當第一個shell里停掉程序,刪掉log文件,再重啟程序(同時重建了log文件)的時候
另外那個shell里讀這個log文件的tail再沒有任何新的顯示
但如果我們用tail -F來讀,同樣在頭一個shell里那樣處理后
這邊出一個:

tail: 『xxxxxx』 has been replaced; following end of new file

[火星人 ] 關於命令tail的參數-F的使用 .已經有424次圍觀

http://coctec.com/docs/service/show-post-1692.html