我正在尝试对名称每天更改的文件使用tail -f命令,即将当前日期附加到其名称。我试过这样做:
CURRENTDATE=$(date +%Y%m%d.log)
tail -F $CURRENTDATE
但它会将CURRENTDATE
设置为执行脚本时的文件。当日期改变时,tail命令有没有什么方法可以自动切换到新文件?我不能在这里使用crontab来每天执行此命令。基本上我正在使用Flume NG exec源。
我真的很感激你的帮助。
答案 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。