Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 从远程服务器收集日志的最佳方法_Unix_Expect - Fatal编程技术网

Unix 从远程服务器收集日志的最佳方法

Unix 从远程服务器收集日志的最佳方法,unix,expect,Unix,Expect,我需要在一些远程Solaris/Linux服务器上运行一些命令,并在本地服务器上的日志文件中收集它们的输出 目前,我正在使用一个位于本地服务器上的简单Expect脚本在目标系统上启动命令。然后我将expect脚本的输出重定向到一个日志文件,如下所示 /usr/local/bin/expect script.exp >> logfile.txt 然而,这被证明是非常不可靠的,因为与服务器的连接波动很大,导致日志不完整和脚本挂起 有没有更好更可靠的方法来完成这项任务?我已经实现了fed

我需要在一些远程Solaris/Linux服务器上运行一些命令,并在本地服务器上的日志文件中收集它们的输出

目前,我正在使用一个位于本地服务器上的简单Expect脚本在目标系统上启动命令。然后我将expect脚本的输出重定向到一个日志文件,如下所示

/usr/local/bin/expect script.exp >> logfile.txt
然而,这被证明是非常不可靠的,因为与服务器的连接波动很大,导致日志不完整和脚本挂起


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

我已经实现了fedorqui的答案

  • 创建了在目标服务器上运行所需命令的(shell)脚本
  • 已将此脚本部署到所有服务器
  • 通过expect从本地(中央)服务器执行此脚本
  • 最后,在成功完成后,从每个服务器分别收集日志,并对其进行处理

到目前为止,解决方案一直运行良好,没有出现任何问题。

我认为最好创建一个执行所有命令的脚本。这个脚本将在一个临时文件中打印输出,然后您可以
scp
sftp
到您的本地服务器。是的,我确实想到了这个想法,但我有80多个远程服务器,上传到每个服务器将非常繁琐。此外,这些命令需要经常修改。因此,这对我来说可能不可行:/Create一个脚本来部署脚本。定义存储这些脚本及其输出的目录。使用基本循环,您可以在几分钟内更新脚本。如果您在所有服务器上都遵循相同的规则,那么它非常干净并且易于维护。我将尝试一下。谢谢你的建议。再次感谢你,我成功地实施了这个计划,而且效果很好:)不过,我还是想了解一下做这件事的其他方法。