Tail -f 文件夹中最后修改的文件

Tail -f 文件夹中最后修改的文件

我正在尝试使用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

更多资源

  • ls

       -t     sort by modification time, newest first
    
       -p, --indicator-style=slash
              append / indicator to directories
    
       -r, --reverse
              reverse order while sorting
    
  • sort

  • grep

    -v, --invert-match
    Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX .)
    
  • tail

      -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

在此处输入图片描述

来源: MultiTail - 在单个 Linux 终端中同时监控多个文件

相关内容