SoftwareLog.2010-08-01-08SoftwareLog.2010-08-01-09SoftwareLog.2010-08-01-10
我试图追踪最新的日志文件给出一个模式(例如SoftwareLog *),我意识到:
tail -F (tail --follow=name --retry)
但是只能遵循一个特定的名称 – 而且这些名称按照日期和时间有不同的名称.我尝试过如下:
tail --follow=name --retry SoftwareLog*(.om[1])
但是通配符语句在被传递到尾部之前已经被重新调用,并且不会在每次尾部重试时重新执行.
有什么建议么?
解决方法 [编辑:经过一个快速搜索工具]您可能想尝试多线 – http://www.vanheusden.com/multitail/
如果你想坚持丹尼斯·威廉姆森的答案(我已经相当于他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”]
总结以上是内存溢出为你收集整理的linux – 如何使用给定的模式来拖尾最新的日志文件全部内容,希望文章能够帮你解决linux – 如何使用给定的模式来拖尾最新的日志文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)