Unix 从远程服务器收集日志的最佳方法
我需要在一些远程Solaris/Linux服务器上运行一些命令,并在本地服务器上的日志文件中收集它们的输出 目前,我正在使用一个位于本地服务器上的简单Expect脚本在目标系统上启动命令。然后我将expect脚本的输出重定向到一个日志文件,如下所示Unix 从远程服务器收集日志的最佳方法,unix,expect,Unix,Expect,我需要在一些远程Solaris/Linux服务器上运行一些命令,并在本地服务器上的日志文件中收集它们的输出 目前,我正在使用一个位于本地服务器上的简单Expect脚本在目标系统上启动命令。然后我将expect脚本的输出重定向到一个日志文件,如下所示 /usr/local/bin/expect script.exp >> logfile.txt 然而,这被证明是非常不可靠的,因为与服务器的连接波动很大,导致日志不完整和脚本挂起 有没有更好更可靠的方法来完成这项任务?我已经实现了fed
/usr/local/bin/expect script.exp >> logfile.txt
然而,这被证明是非常不可靠的,因为与服务器的连接波动很大,导致日志不完整和脚本挂起
有没有更好更可靠的方法来完成这项任务?我已经实现了fedorqui的答案
- 创建了在目标服务器上运行所需命令的(shell)脚本
- 已将此脚本部署到所有服务器
- 通过expect从本地(中央)服务器执行此脚本
- 最后,在成功完成后,从每个服务器分别收集日志,并对其进行处理
到目前为止,解决方案一直运行良好,没有出现任何问题。我认为最好创建一个执行所有命令的脚本。这个脚本将在一个临时文件中打印输出,然后您可以
scp
或sftp
到您的本地服务器。是的,我确实想到了这个想法,但我有80多个远程服务器,上传到每个服务器将非常繁琐。此外,这些命令需要经常修改。因此,这对我来说可能不可行:/Create一个脚本来部署脚本。定义存储这些脚本及其输出的目录。使用基本循环,您可以在几分钟内更新脚本。如果您在所有服务器上都遵循相同的规则,那么它非常干净并且易于维护。我将尝试一下。谢谢你的建议。再次感谢你,我成功地实施了这个计划,而且效果很好:)不过,我还是想了解一下做这件事的其他方法。