有多個進程登錄到的目錄,並且我想尾部選擇進程的最新文件。尾部匹配所選規則的最新文件
在〜/ .bashrc中我已經加入來自以下
function __taillog {
tail -f $(find $1 -maxdepth 1 -type f -printf "%[email protected] %p\n" | sort -n | tail -n 1 | cut -d' ' -f 2-)
}
alias taillog='__taillog'
:https://superuser.com/questions/117596/how-to-tail-the-latest-file-in-a-directory
日誌文件目錄的一個例子
-rw-r--r-- 1 genesys genesys 2284 Mar 19 16:34 gdalog.20130319_163436_906.log
-rw-r--r-- 1 genesys genesys 131072 Mar 19 16:34 gdalog.20130319_163436_906.snapshot.log
-rw-r--r-- 1 genesys genesys 10517 Mar 19 16:54 lcalog.20130319_163332_719.log
-rw-r--r-- 1 genesys genesys 131072 Mar 19 16:54 lcalog.20130319_163332_719.snapshot.log
-rw-r--r-- 1 genesys genesys 3792 Mar 19 16:37 StatServer_TLSTest.20130319_163700_703.log
-rw-r--r-- 1 genesys genesys 160562 Mar 19 16:52 StatServer_TLSTest.20130319_163712_045.log
-rw-r--r-- 1 genesys genesys 49730 Mar 19 16:54 StatServer_TLSTest.20130319_165217_402.log
-rw-r--r-- 1 genesys genesys 53960 Mar 20 09:55 StatServer_TLSTest.20130319_165423_702.log
-rw-r--r-- 1 genesys genesys 131072 Mar 20 09:56 StatServer_TLSTest.20130319_165423_702.snapshot.log
所以到尾部都StatServer命令將是
taillog /home/user/logs/StatServer*
,它將尾部在給定的路徑
的問題是尾部顯示一些文件輸出,但不顯示任何更新時,該日誌文件被追加該應用程序的最新文件。如果運行以下命令日誌正確
tail -f $(find /home/user/logs/StatServer* -maxdepth 1 -type f -printf "%[email protected] %p\n" | sort -n | tail -n 1 | cut -d' ' -f 2-)
尾部分如何添加此命令爲bash函數,然後調用它的別名導致所期望它不工作。
任何建議更好的方式是值得歡迎的。
它工作?問題是什麼? – fedorqui 2013-03-19 05:07:19
另外,你的查找鏈看起來相當複雜,我只是用ls -t來做這個。 – themel 2013-03-19 05:36:43
尾部確實顯示日誌文件的一部分,但日誌文件由應用程序附加時不會更新。 – oden 2013-03-19 22:54:30