【发布时间】:2011-07-05 13:41:56
【问题描述】:
我有 4 个应用服务器。我想检查所有 4 个是否都已启动并运行,所以我想编写一个脚本来检查所有应用程序服务器上的进程(我不必登录每个服务器并运行脚本)。应用服务器有一个共享文件夹,他们都可以访问,所以我可以把脚本放在那里。 我想找出在所有 4 个应用服务器上检查这个的最简单/最有效的方法。最初的计划是通过 ssh 连接到每台服务器,但这会要求您输入密码和其他会导致问题的提示。我正在考虑使用 keygen,但我在服务器上没有主目录,并且在生成密钥时遇到了问题。 我想知道是否有人可以建议通过脚本执行此操作的最佳方法。 perl 或 unix 哪个更好/更有效?除了 keygen 之外,还有其他我想念的选项吗? 任何建议将不胜感激。
谢谢。
【问题讨论】:
-
ssh 方法到底有什么问题?
-
我不想在脚本中设置密码,我被告知将其作为参数传递是行不通的(因为它会提示您输入其他内容,例如说是) ,但 keygen 是为了让我无需密码即可执行此操作。我无法进行此设置,因为我在盒子上没有家庭资料(很快就会得到一个,但还没有)。我只是在寻找一些意见/想法,看看这是否是最好的方法,或者是否有更好的方法来做到这一点。
-
你可能想看看期待。它使响应提示变得非常容易。但是,如果没有 ssh-keys,您仍然需要在脚本中输入密码,这不是很好。
-
对于自动监控和恢复,我真的很喜欢 monit。它可能满足您的需求,也可能不满足您的需求,但可以将其视为在所有目标主机上运行的守护程序或作为单个监控主机上监控脚本的驱动程序。 mmonit.com/monit
-
如果您可以向您的应用服务器添加功能,那么嵌入 Web 服务器(或其他 tcp 服务器)可能会更容易,这样您就可以在不需要在目标系统上进行探测。或者 ember 一个心跳发生器,这样他们就可以在不被询问的情况下报告他们的状态。如果你只有二进制文件,这显然不是一个选择。