我是perl的新手,我有一个问题,即'如何使用perl脚本从linux服务器读取个别日志到另一个日志文件',我需要捕获来自不同路径的各个日志并输出这些日志文件的结果并存储到另一个位置的文件。这些日志在Linux服务器中生成..
提前致谢...
答案 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
几乎解释了如何做到这一点。