我正在尝试使用tail -f
来跟踪指定文件夹中的日志文件。我可以使用简单的命令来执行此操作,tail -f [path to file]
但是有没有办法让我运行命令并跟踪文件夹中最近/最后修改的文件。我绝不是这个领域的专家,所以任何帮助都非常感谢
答案1
您可以运行ls -tp | sort | grep -v / | tail -n 1
命令并将它们通过for
然后循环只tail -F
针对最新文件运行命令以监视其内容更改。您也可以考虑使用ls -tpr | grep -v / | tail -n 1
命令。
for VAR in $(ls -tp | sort | grep -v / | tail -n 1); do tail -F $VAR; done
或者
for VAR in $(ls -tpr | grep -v / | tail -n 1); do tail -F $VAR; done
更多资源
-
-t sort by modification time, newest first -p, --indicator-style=slash append / indicator to directories -r, --reverse reverse order while sorting
-
-v, --invert-match Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX .)
-
-n, --lines=[+]NUM output the last NUM lines, instead of the last 10; or use -n +NUM to output starting with line NUM
答案2
你可以使用 多尾,作为许多发行版的标准包提供。
示例 1:在一个窗口中合并两个不同颜色的日志文件
multitail -ci green /var/log/yum.log -ci yellow -I /var/log/mysqld.log
示例 2:显示五个日志文件,将两个合并为一列
multitail -s 2 -sn 1,3 /var/log/mysqld.log -I /var/log/xferlog /var/log/monitorix /var/log/ajenti.log /var/log/yum.log