看板 Linux 關於我們 聯絡資訊
請問一下,如果我有一隻小程式要利用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
mathfeel:ssh r1 cpu & 11/19 17:05
kkarthur:樓上的方法我試過了,沒辦法把輸出結果回存到變數中 11/19 17:39
cpur1=`ssh r1 cpu &` 如果寫成上面這樣,程式還是會一個一個的執行,沒辦法省時間 cpur1=`ssh r1 cpu` & 寫成這樣,結果存不回去變數裡面
shadowjohn:ssh r1 cpu 2>&1 & 11/19 18:08
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)
leicheong:"echo ${PIPESTATUS[*]}" ? 11/20 00:09
leicheong:噢... 忘了這variable只會儲foreground process的 11/20 00:12
leicheong:exit code... 11/20 00:12
leicheong:可以參考一下這個: 11/20 00:16
yves0417:用1> &1 1是stdout 2是stderr 11/20 00:42