我正在寻找一个运行一系列命令的工具,比如现有的工具:
parallel -h parallel [OPTIONS] command -- arguments for each argument,run command with argument,in parallel parallel [OPTIONS] -- commands run specified commands in parallel
但是我希望这些命令可以在多台计算机上运行ssh,其中包含pssh或pdsh的一些细节,可以与许多主机进行通信.我有hacked out something that works,,但与这些工具相比,它的ssh处理无关紧要 – 我无法阻止它们,甚至看不到它们的所有输出.
如果该工具具有一些基本的负载平衡,那就更好了,但我想我会使用一个单独的工具来选择主机. (用于查询负载,内存以及计算机是否处于交互式使用状态的好工具也会受到赞赏,但我已经编写了一些足以让主机选择的东西.)这不是集群,我不知道我想依赖sshd以外的守护进程,或者请管理员安装像Condor这样的严重集群作业调度程序.我没有任何这些计算机上的root访问权限.
编辑:为了强调,我想在每个主机上运行不同的命令 – 通常使用不同的参数运行相同的程序,如上面的第一个并行用法示例.
解决方法
啊!它看起来像
GNU version of parallel(不是我安装的那个)确实做到了这一点.没有负载平衡,我还没有尝试过看看它对每个stdout和stderr的作用,但这正是我想要的.
To run commands on more than one remote computer run: seq 10 | parallel --sshlogin server.example.com,server2.example.net echo