如何在日志文件名后面附加日期?

6qftjkof  于 2021-06-03  发布在  Flume
关注(0)|答案(3)|浏览(431)

我正在尝试对一个文件使用tail-f命令,该文件的名称每天都在变化,即当前日期被附加到其名称之后。我试过这样做:

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

tail -F $CURRENTDATE

但它会把文件和 CURRENTDATE 设置为执行脚本的时间。当日期改变时,tail命令有没有办法自动切换到新文件?我不能每天在这里使用crontab来执行这个命令。基本上我是用flume ng exec源代码。
我真的很感激你在这方面的帮助。

chhqkbe1

chhqkbe11#

我使用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"'

您可以从这里 checkout locktail\u rotate.sh。

ttvkxqim

ttvkxqim2#

跟踪最近的 .log 目录中的文件:

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

tail -F $LASTFILE
dz6r00yl

dz6r00yl3#

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

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

相关问题