Linux:将日志文件流化为一个文件

Linux:将日志文件流化为一个文件,linux,shell,logging,Linux,Shell,Logging,我想收集所有日志条目,这些条目通过循环写入日志文件: log_2013_05_10.txt log_2013_05_11.txt log_2013_05_12.txt ... …合并成一个文件。我们的目标是,在测试一个通宵运行的应用程序时,所有条目都可以在一个文件中使用(并且只从这个时间段开始),因此不需要手动合并和清理(从testperiod之前和之后删除条目) 是否有任何工具(linux命令行)可以跟踪文件(与某些模式匹配)? 比如: streame

我想收集所有日志条目,这些条目通过循环写入日志文件:

    log_2013_05_10.txt
    log_2013_05_11.txt
    log_2013_05_12.txt
    ...
…合并成一个文件。我们的目标是,在测试一个通宵运行的应用程序时,所有条目都可以在一个文件中使用(并且只从这个时间段开始),因此不需要手动合并和清理(从testperiod之前和之后删除条目)

是否有任何工具(linux命令行)可以跟踪文件(与某些模式匹配)? 比如:

    streamer 'log_2013*' > joined.txt

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

这很简单,但应该可以做到

#!/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
我想,也许对你有用

MultiTail允许您像查看原始尾部一样查看一个或多个文件 节目。不同之处在于,它会在您的计算机上创建多个窗口 控制台(带有ncurses)它还可以监视通配符:如果另一个文件 如果匹配通配符的修改日期较新,则 自动切换到该文件。例如,通过这种方式, 监视文件的完整目录。合并2个或更多 日志文件是可能的


tail-Fq-n0 log\u 2013\u 05\u 10.txt log\u 2013\u 05\u 11.txt…>joined.txt应该可以工作。它将跟随文件的结尾,在目标文件到达时将其新内容写入目标文件。如果您使用的是Bash4,您可以创建一个简单的表达式,它将匹配一整年(然后是一些)的所有文件:
log\u 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-n0 joined.txt
查看正在写入加入日志的内容。

谢谢。此脚本适用于就绪文件,并且仅连接它们。我在考虑跟踪,比如:streamer'log_2013*'>joined.txt这将真正跟踪更改,只跟踪我感兴趣的更改(时间段-我会在测试结束时终止命令)@Tomasz啊,明白了。好的luckIt不会跟随新创建的文件。如果您指定它们的名称而不是使用glob,它会跟随。更新后,它会跟随。添加生成文件名的方式可能会很有用。例如,tail-Fq-n0$(echo log_2013_05_{1..100})或
{1..31}
;)另外,它不会像零填充数字那样工作。+1对于非常有趣的工具,特别是拆分窗口以跟踪多个文件,谢谢