如何使用perl脚本从linux服务器读取单个日志到另一个日志文件

时间:2011-06-01 11:17:00

标签: linux perl

我是perl的新手,我有一个问题,即'如何使用perl脚本从linux服务器读取个别日志到另一个日志文件',我需要捕获来自不同路径的各个日志并输出这些日志文件的结果并存储到另一个位置的文件。这些日志在Linux服务器中生成..

提前致谢...

2 个答案:

答案 0 :(得分:3)

如果你想要的话,你可以轻松地将它们全部捕捉到一起:

cat log1 log2 log3 > result

<强>更新

如果您希望不同输出文件中的日志中的最近行,请使用tail:

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

答案 1 :(得分:0)

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

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

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

至于perl,File::Tail手册中的select几乎解释了如何做到这一点。