CyberMuz Asked: 2017-02-26 10:13:36 +0800 CST2017-02-26 10:13:36 +0800 CST 2017-02-26 10:13:36 +0800 CST 在文件名中连续拖尾带有日期和时间的旋转日志文件 772 我有一个格式的日志文件log_name_YY-MM-DD_HH_mm.log。日志每隔几个小时轮换一次,并创建包含创建日期和时间的新日志。有时我需要使用tail -f命令跟踪此日志的实时输出。日志旋转后,tail 仍指向旧文件名,必须使用新文件名手动重新启动。 有没有办法自动切换tail -f到使用新文件?在这种情况下,tail -F选项 ( tail --follow=name --retry) 不起作用,因为日志的文件名发生了变化。 log-files bash command tail 1 个回答 Voted Best Answer NZD 2017-02-26T16:08:45+08:002017-02-26T16:08:45+08:00 您可以创建一个脚本在后台跟踪最新的日志文件,然后定期检查新的日志文件。如果有新的日志文件,则终止旧进程并开始跟踪新文件。 就像是: #!/bin/bash PATTERN='log_name_??-??-??_??_??.log' CURRENT=any_pattern # dummy pattern to start off first tail -f while true; do NEWLOG=`ls -t $PATTERN|head -n1` if [[ $NEWLOG != $CURRENT ]] then kill $TAILPID 2>/dev/null CURRENT=$NEWLOG tail -f $CURRENT & TAILPID=$! fi sleep 1 # check regularly done
您可以创建一个脚本在后台跟踪最新的日志文件,然后定期检查新的日志文件。如果有新的日志文件,则终止旧进程并开始跟踪新文件。
就像是: