2011-06-01 59 views
0

我是新的perl,我有一个问题ie'如何使用perl脚本将个别日志从linux服务器读入另一个日志文件',我需要捕捉不同的路径和输出在另一location.These日志这些日志文件,并存储到文件的结果,个人日志在Linux服务器生成..如何使用Perl脚本将个别日志从linux服务器读入另一个日志文件

在此先感谢...

+0

你的意思是说你想将一组文件合并成一个文件?你为什么认为你需要perl? – TLP 2011-06-01 11:34:54

+0

不,我有单独的路径日志文件在那里运行Linux服务器,但我需要捕获该日志到单个文件的另一个位置。 – indu 2011-06-01 12:17:11

+0

我不太明白你在做什么。复制文件?只需检查最近的几行?我认为你需要在这里更清楚地了解你的需求。 – TLP 2011-06-01 22:34:02

回答

3

您可以轻松地将它们全部集中在一起,如果这就是你想要的:

cat log1 log2 log3 > result 

更新:

如果你想从不同的输出文件的所有日志最近的线,使用尾巴:

tail -50 /opt/psauto1/tester.log > /some/other/file 
tail -50 /opt/psauto1/testdata.log > /some/other/file2 
tail -50 /opt/view/test/itresult.log > /some/other/file3 
tail -50 /opt/test/glr.log > /some/other/file4 
tail -50 /opt/test/glr/glrdata.log > /some/other/file5 
tail -50 /opt/test/glr/result.log > /some/other/file6 
tail -50 /opttest/glr/output.log > /some/other/file7 

,你甚至可以把它放进一个循环,并运行它每隔5秒:

while [ true ] 
do 
    tail -50 /opt/psauto1/tester.log > /some/other/file 
    tail -50 /opt/psauto1/testdata.log > /some/other/file2 
    tail -50 /opt/view/test/itresult.log > /some/other/file3 
    tail -50 /opt/test/glr.log > /some/other/file4 
    tail -50 /opt/test/glr/glrdata.log > /some/other/file5 
    tail -50 /opt/test/glr/result.log > /some/other/file6 
    tail -50 /opttest/glr/output.log > /some/other/file7 
    sleep 5 
done 
+0

我需要使用tail -f输入路径文件>输出路径文件从server.am捕获最近的日志,但一次没有捕获多个日志。 – indu 2011-06-01 12:10:55

+0

我有7个日志I/P日志,例如:1)/opt/psauto1/tester.log,2)/opt/psauto1/testdata.log,3)/opt/view/test/itresult.log,4)/ opt/test/glr.log,5)/opt/test/glr/glrdata.log,6)/opt/test/glr/result.log,7)/opttest/glr/output.log。所以,我想捕获最近这些日志到另一个位置的个人路径... – indu 2011-06-01 12:28:01

+0

@indu看到我的更新 – dogbane 2011-06-01 12:38:53

0

至于tail -f,你可以做这样的:

(
    tail -f file1 & 
    tail -f file2 & 
)>>total_file 

()将把命令组合在一起(fork ing一个子shell),>>将附加到一个文件,&将强制命令到后台。

至于Perl,selectFile::Tail手册很多说明如何做到这一点。

相关问题