我的情況是,我有許多進程應該在不同的遠程主機中同時啓動(或多或少)。產生所有遠程進程的主腳本應等待所有這些進程完成,然後才能繼續進行下一次分佈式執行。到目前爲止,我已經試過這樣的方式(與Ubuntu 12.04服務器上沒有成功,/ bin/sh的指向爲/ bin/bash)的是:如何等待多個遠程進程(通過ssh)完成?
#!/bin/bash
for run_input in run1.data run2.data ; do
for i in `seq 0 10` ; do
ssh node$i "/path/to/bin $run_input /path/to/node$i.config" &
done
wait
done
那麼,什麼是錯用上面的辦法?
編輯:
注意,該命令是對每個遠程主機不同。
好,那麼你如何發送不同的命令到不同的目的地? –
你應該在每行上填寫'/ PATH/TO/FILE/WITH/HOSTS'文件;那麼'pssh -h file command1;命令2; ...' –