0

我在远程服务器(bServer)上有一个脚本,它通过 SSH 连接到中央服务器(让我们调用 cServer)并启动一个脚本,该脚本进一步将 SSH 连接到其他 2 台服务器(server13 / server14),在这些服务器中的每一个上运行一个脚本产生一个文件。

我已经设置了从 cServer 到 server13/14 的 DSA SSH 密钥。然后 cServer 将从 server13/14 中提取生成的文件,然后 bServer 将从 cServer 中提取它们。

这在手动运行时非常有效。

但是...当我在 CRON 中的 bServer 上安排作业时,server14 中的文件不会被拉到 cServer 上。

更有趣的是:当对 server14 的 ssh OR scp 命令出现在同一个脚本中时,来自 server13 的文件不会从 cServer 传输到 bServer。

如果我将它们放在单独的脚本中,则 server13 文件可以很好地返回 bServer,但 server14 的文件只是生成的,根本没有传输回 cServer。

server13 和 server14 都运行相同的 SunOS 版本。

我已经阅读了许多针对类似问题的不同解决方案,但没有找到任何解决方案。

这一定是我遇到过的最烦人的问题。非常感激任何的帮助!

4

1 回答 1

0

通过 cron 执行作业时,您不会保留您的环境。如果您已经以拥有 cron 脚本的用户身份登录到远程服务器,则出于诊断目的,您可能希望尝试通过 at 命令运行相同的脚本,但实际上是这样。

如果您已将命令放在名为 my_script 的可执行脚本中,则以下命令

at -f my_script 0936.00 将在 9 小时 36 分钟时执行命令 my_script。如果可行,您将知道在 cron 中您缺少环境的一些基本组件。

于 2014-09-11T14:46:05.607 回答