如何使用附加在其名称上的日期来拖尾日志文件?

时间:2013-10-07 06:16:38

标签: shell tail flume

我正在尝试对名称每天更改的文件使用tail -f命令,即将当前日期附加到其名称。我试过这样做:

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

tail -F $CURRENTDATE

但它会将CURRENTDATE设置为执行脚本时的文件。当日期改变时,tail命令有没有什么方法可以自动切换到新文件?我不能在这里使用crontab来每天执行此命令。基本上我正在使用Flume NG exec源。

我真的很感激你的帮助。

3 个答案:

答案 0 :(得分:2)

当日期更改时,tail命令本身无法自动切换到具有不同名称的新文件。因此,你必须杀死旧尾巴,并在适当的时候开始新的尾巴。

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

答案 1 :(得分:1)

拖尾目录中最新的.log文件:

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

tail -F $LASTFILE

答案 2 :(得分:0)

我也在使用flume-ng exec拖尾旋转日志文件。 这是我的解决方案:

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。