2013-05-07 50 views
0

我需要在某些远程Solaris/Linux服务器上运行一些命令,并将它们的输出收集到本地服务器上的日志文件中。从远程服务器收集日志的最佳方法

目前,我正在使用一个简单的Expect脚本,驻留在本地服务器上以触发目标系统上的命令。我则期望脚本的输出重定向到一个日志文件,这样,

/usr/local/bin/expect script.exp >> logfile.txt 

然而,这被证明为服务器的连接波动的很多是非常不可靠,导致不完整的日志,挂脚本。

有没有更好更可靠的方法来完成这项任务?

+0

我认为最好创建一个执行所有命令的脚本。这个脚本会将输出打印在一个临时文件中,然后你可以将'scp'或'sftp'到你的本地服务器上。 – fedorqui 2013-05-07 10:52:08

+0

是的,这个想法确实存在于我的脑海里,但我拥有超过80个左右的远程服务器,并且上传到他们中的每一个都将非常繁琐。而且,这些命令需要经常修改。因此,这对我来说可能不适用:/ – 2013-05-07 11:07:22

+1

创建一个脚本来部署脚本。定义一个存储这些脚本及其输出的目录。使用基本循环,您可以在几分钟内更新脚本。如果您在所有服务器中遵循相同的规则,则它非常干净且易于维护。 – fedorqui 2013-05-07 11:11:22

回答

0

我已经实现fedorqui的回答,

  • 创建运行在目标服务器上所需要的命令的(外壳)脚本。
  • 将此脚本部署到所有服务器。
  • 通过期望从本地(中央)服务器执行此脚本。
  • 最终在成功完成后从每台服务器单独收集日志,并对其进行处理。

该解决方案一直工作正常,没有一个小故障,直到现在。

相关问题