2013-10-07 251 views
0

我正在嘗試對名稱每天更改的文件(即當前日期附加到其名稱後面)使用tail -f命令。我試着這樣做:如何追蹤日期文件的名稱附加日期?

CURRENTDATE=$(date +%Y%m%d.log) 

tail -F $CURRENTDATE 

但執行該腳本時,它的尾巴的CURRENTDATE設爲時間的文件。當日期改變時,tail命令可以自動切換到新文件嗎?我無法在這裏使用crontab來每天執行這個命令。基本上我使用Flume NG exec來源。

我真的很感謝這方面的幫助。

+0

你想用什麼日期?文件的修改日期?目錄中最新的文件?您可以使用'ls -tr * .log |獲取最新的文件尾巴-n1' – beroe

回答

1

沒有辦法tail命令本身可以自動切換到新的文件使用不同的名稱,當日期改變。因此,你必須在適當的時候殺死舊尾巴並開始新的尾巴。

while 
    tail -F `date +%Y%m%d.log`& sleep $(expr `date +%s -d'day 0'` - `date +%s`) 
do kill $! 
done 
1

到尾部最近.log文件目錄:

LASTFILE=$(ls -t *.log | head -1) 

tail -F $LASTFILE 
0

我正在使用flume-ng exec tailing旋轉日誌文件。 這裏是我的解決方案:

originAgent.sources.originSource2.type = exec                                    
originAgent.sources.originSource2.command = locktail_rotate.sh /path/to/test.DATE_ROTATE.log 'date +"%Y%m%d"' 

而且你可以從here檢出locktail_rotate.sh。

相關問題