[编辑:快速搜寻工具后]
你可能会想尝试multitail -
http://www.vanheusden.com/multitail/
如果您想坚持Dennis Williamson的回答(我已经对他进行了+1),那么这里是您的空白。
在您的Shell中,运行以下脚本(或等效于zsh的脚本,在看到zsh标记之前,我先用bash编写了该脚本):
#!/bin/bashTARGET_DIR="some/logfiles/"SYMlink_FILE="SoftwareLog.latest"SYMlink_PATH="$TARGET_DIR/$SYMlink_FILE"function getLastModifiedFile { echo $(ls -t "$TARGET_DIR" | grep -v "$SYMlink_FILE" | head -1)}function getCurrentlySymlinkedFile { if [[ -h $SYMlink_PATH ]] then echo $(ls -l $SYMlink_PATH | awk '{print $NF}') else echo "" fi}symlinkedFile=$(getCurrentlySymlinkedFile)while truedo sleep 10 lastModified=$(getLastModifiedFile) if [[ $symlinkedFile != $lastModified ]] then ln -nsf $lastModified $SYMlink_PATH symlinkedFile=$lastModified fidone使用普通方法(同样,我不知道zsh,所以可能有所不同)来后台处理该过程…
./updateSymlink.sh 2>&1 > /dev/null
然后
tail -F $SYMlink_PATH,使尾巴可以更改符号链接或旋转文件。
这有点令人费解,但是我不知道用尾巴做这件事的另一种方法。如果其他人知道可以处理此问题的实用程序,请让他们向前走,因为我也很想亲自查看它-
默认情况下,如Jetty之类的应用程序会以这种方式记录日志,并且我总是编写在cron上运行的符号链接脚本以补偿为了它。
[编辑:从其中一行的末尾删除了错误的’j’。您还存在一个错误的变量名称“ lastModifiedFile”,该名称不存在,您设置的正确名称是“
lastModified”]



