微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Linux:将日志文件旋转到一个文件中

我想收集所有日志条目,这些日志条目是通过轮换写入日志文件的:

log_2013_05_10.txt log_2013_05_11.txt log_2013_05_12.txt ...

…成一个文件。 我们的目标是,在压力testing应用程序的压力testing过程中,所有条目都可以在一个文件中使用(并且只能从这个时间段),所以不需要手动合并和清理(从testing周期之前和之后删除条目)。

有没有任何工具(linux命令行),跟踪文件(匹配一些模式)? 就像是:

streamer 'log_2013*' > joined.txt

(只要joiner命令运行,就会追加joined.txt,例如24小时)

用Python检测Linux中的按键组合?

如何在浏览器中在线查看PHP或Apache错误日志?

Logback和Windows事件系统集成

C ++ / W32 – 录制声音,直接显示或WaveInopen?

在没有F12工具的情况下在Internet Explorer上恢复JavaScript日志和错误

PHP应用程序logging页面请求数据的可伸缩方式?

Nginx – 从logging到access.log中排除特定的文件文件

如何在shell脚本中复制新的日志文件的新条目或新行?

强制`tee`运行在shell脚本中的每个命令?

MobaXterm:将所有NEWterminal活动logging在单独的文件中?

tail -Fq -n 0 log_2013_05_10.txt log_2013_05_11.txt ... > joined.txt应该可以工作。 它将跟随文件的结尾,在目标文件到达时将新内容写入目标文件。 如果你使用的是Bash 4,你可以创建一个简单的表达式来匹配全年的所有文件(然后是一些): log_2013_{01..12}_{01..31}.txt

例:

$ cd -- "$(mktemp --directory)" $ tail -Fq -n 0 date.log disk.log > joined.txt & # Start logging [1] 30827 tail: cannot open 'date.log' for reading: No such file or directory tail: cannot open 'disk.log' for reading: No such file or directory $ while true; do date >> date.log; sleep 5; done & # Log time every 5 seconds [2] 30835 tail: 'date.log' has become accessible $ while true; do df -Ph / | tail -n 1 >> disk.log; sleep 10; done & # Log disk use every 10 seconds [3] 30847 tail: 'disk.log' has become accessible

现在你可以tail -f -n 0 joined.txt来查看正在写入连接日志的内容

我认为, multitail可能会为你工作。

MultiTail允许您查看一个或多个文件,如原始的尾部程序。 不同的是,它会在控制台上创建多个窗口(使用ncurses)。 它还可以监视通配符:如果与通配符匹配的另一个文件具有更新的修改日期,则会自动切换到该文件 这样,你可以,例如,监视一个完整的文件目录。 合并2个甚至更多的日志文件是可能的。

这很简单,但应该做的伎俩。

#!/bin/bash OUTFILE=/tmp/joinedlog.txt touch $OUTFILE if [ "$1" == "" ]; then PATTERN='log_*05*' else PATTERN=$1 fi echo "Searching for $PATTERN" for x in $( ls $PATTERN ); do echo Joining $x cat $x >> $OUTFILE done

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐