[問題] 同時執行多個指令

看板Linux作者 (aa)時間16年前 (2009/11/19 15:44), 編輯推噓4(405)
留言9則, 5人參與, 最新討論串1/3 (看更多)
請問一下,如果我有一隻小程式要利用ssh同時送到20台電腦執行 並把結果回存 如下: cpur1=`ssh r1 cpu` cpur2=`ssh r2 cpu` cpur3=`ssh r3 cpu` .... .... .... 因為執行cpu這個小程式需要一些時間,像上面的寫法 如果執行一次要花上1分鐘,加起來就要花上20*1=20分鐘 有沒有辦法能同時送出20個命令,只用花上1分鐘,就能得到結果呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.79.103

11/19 17:05, , 1F
ssh r1 cpu &
11/19 17:05, 1F

11/19 17:39, , 2F
樓上的方法我試過了,沒辦法把輸出結果回存到變數中
11/19 17:39, 2F
cpur1=`ssh r1 cpu &` 如果寫成上面這樣,程式還是會一個一個的執行,沒辦法省時間 cpur1=`ssh r1 cpu` & 寫成這樣,結果存不回去變數裡面

11/19 18:08, , 3F
ssh r1 cpu 2>&1 &
11/19 18:08, 3F
cpu1=`ssh r1 cpu 2>&1 &` 程式還是只會一行一行依序執行 如果直接輸入 ssh r1 cpu 2>&1 & 雖然能在螢幕上印出,但是我希望能把輸出的結果存進變數中 所以依然沒用 >"< ※ 編輯: kkarthur 來自: 140.123.79.103 (11/19 19:31) ※ 編輯: kkarthur 來自: 140.123.79.103 (11/19 19:31)

11/20 00:09, , 4F
"echo ${PIPESTATUS[*]}" ?
11/20 00:09, 4F

11/20 00:12, , 5F
噢... 忘了這variable只會儲foreground process的
11/20 00:12, 5F

11/20 00:12, , 6F
exit code...
11/20 00:12, 6F

11/20 00:16, , 7F
可以參考一下這個:
11/20 00:16, 7F

11/20 00:42, , 9F
用1> &1 1是stdout 2是stderr
11/20 00:42, 9F
文章代碼(AID): #1B1FT8Vl (Linux)
文章代碼(AID): #1B1FT8Vl (Linux)