【问题标题】:How to write a shell script to run scripts on several remote machines without ssh?如何编写一个 shell 脚本在没有 ssh 的多台远程机器上运行脚本?
【发布时间】:2012-06-24 01:05:15
【问题描述】:

谁能告诉我如何编写一个 bash shell 脚本,在没有 ssh 的情况下在多台远程机器上执行另一个脚本。

场景是我有几个脚本应该在 100 个 Amazon Ec2 云实例上运行。天真的方法是编写一个脚本来将两个源脚本 scp 到所有实例,然后通过在每个实例上执行 ssh 来运行它们。有更好的方法吗?

提前致谢。

【问题讨论】:

  • 我的意思是不使用 ssh。你看,我无法通过 ssh 连接到 100 个远程实例中的每一个来运行我的脚本。
  • 为什么不呢?如果序列化应该只需要几分钟,如果并行则更短。
  • 您能否详细说明如何使用序列化或并行执行来自动化流程?

标签: linux shell amazon-ec2


【解决方案1】:

如果你只想并行处理,可以使用Parallel SSH 或Cluster SSH。如果实在不想使用 SSH,可以安装 celery 之类的任务队列系统。你甚至可以去老学校,只是有一个定期检查 s3 中的位置的 cron 作业,如果密钥存在,下载文件并运行它,尽管你必须小心只运行一次。如果您通常尝试管理一堆机器,也可以使用Puppet 和Chef 等工具。

【讨论】:

  • 嗯,结果比我预期的要容易。工作完成。谢谢!
  • 抱歉回复晚了,我不经常登录这里。我决定为序列化 ssh 编写脚本,尽管我真的很想使用并行 ssh。感谢您的回答,这非常有用:)
【解决方案2】:

另一个选项是rsh,但要小心,它有安全隐患。见rsh vs. ssh。

【讨论】:

    猜你喜欢
    • 2023-03-10
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-14
    • 2016-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多