谁能告诉我如何编写一个 bash shell 脚本,在没有 ssh 的情况下在几台远程机器上执行另一个脚本。
场景是我有几个脚本应该在 100 个 Amazon Ec2 云实例上运行。天真的方法是编写一个脚本来将两个源脚本 scp 到所有实例,然后通过在每个实例上执行 ssh 来运行它们。有没有更好的方法来做到这一点?
提前致谢。
谁能告诉我如何编写一个 bash shell 脚本,在没有 ssh 的情况下在几台远程机器上执行另一个脚本。
场景是我有几个脚本应该在 100 个 Amazon Ec2 云实例上运行。天真的方法是编写一个脚本来将两个源脚本 scp 到所有实例,然后通过在每个实例上执行 ssh 来运行它们。有没有更好的方法来做到这一点?
提前致谢。
如果你只想并行做一些事情,你可以使用Parallel SSH或Cluster SSH。如果实在不想使用 SSH,可以安装 celery 之类的任务队列系统。你甚至可以去老学校,只是有一个定期检查 s3 中的位置的 cron 作业,如果密钥存在,下载文件并运行它,尽管你必须小心只运行一次。如果您通常尝试管理一堆机器,您还可以使用Puppet和Chef等工具。
另一种选择是rsh
,但要小心,它具有安全隐患。请参阅rsh 与 ssh。