2015-04-16 69 views
0

是否有办法每隔一分钟左右监视一个文件并仅将附加行复制到另一个文件?我正在寻找一种方法,可以在生成日志时将多台服务器中生成的日志文件整合到单个文件中。对你的帮助表示感谢。用于监视和复制文件更改的UNIX shell脚本

在这种情况下rsync的帮助?

+0

在单个或同一系统上运行这些服务器? – arkascha

+0

在单一系统中运行 – Arun

+1

这属于Unix和Linux。在SuperUser上它不会“完全”不合适,但U&L似乎更适合我。 –

回答

1

最简单的就是使用tail命令,我会说:

tail -f /path1/file1 /path2/file2 /path3/file3 > shared.log 

没有延迟,内容按照时间顺序加入,你也从不同的进程得到部分之间细标记/日志文件。

您可以启动这一进程,并保持在注销后在后台运行:

nohup tail -f /path1/file1 /path2/file2 /path3/file3 > shared.log & 
+0

这真棒...我只是好奇,因为你问服务器是否运行在单个或单独的系统。如果服务器运行在不同的系统中,如何做到这一点? – Arun

+1

实际上,不确定什么是最好的。您可以尝试相同的方法,在每个系统中运行一个“tail”实例,从ssh客户端启动,并通过管道将其泵入收集系统的中央“尾部”。如果你有权访问文件系统,你也可以使用一个单一的,中央的'tail'命令,但这取决于文件服务器。还可以为这项任务安装一个监控系统,无论如何监控系统都是有意义的。 – arkascha

+1

或者,最强大的可能是使用灰色日志记录等。因此,远程进程可以记录事物的中央“日志服务器”。你可以通过分发的'tail'命令再次提供。 – arkascha