Shell多執行緒執行指令碼示例

2021-09-02 13:26:22 字數 912 閱讀 7664

shell指令碼是順序執行的,但是系統允許多個shell指令碼同時執行,為了達到資源的綜合利用,也就是把伺服器往死裡用,有時候需要一段指令碼對多個指令碼進行多執行緒的排程,並且等待完成之後繼續執行後續的指令碼。

主指令碼:

# !/bin/bash

#用於識別子執行緒的完成數量

rm test.count

touch test.count

#開始啟動子執行緒

./script.sh 10 &

./script.sh 20 &

./script.sh 30 &

./script.sh 40 &

./script.sh 50 &

./script.sh 60 &

./script.sh 70 &

./script.sh 80 &

#監控子執行緒的完成數量

v_count=`wc -l test.count | awk -f ' ' ''`

while [[ $ -lt 8 ]];do

echo $i;

echo "子指令碼還沒有完全執行完畢,已完成:$"

v_count=`wc -l test.count | awk -f ' ' ''`

sleep 1

done;

echo "子指令碼完全執行完畢,已完成:$"

子指令碼:

# !/bin/bash

id=$

for((i = 0 ;i < $ ;i ++ )); do

children $."

sleep 1;

}done

echo "finish">>test.count

通過上面的方法,即可把伺服器往死裡用了,這個在多維度統計報表資料的時候特別有用,3個維度的報表需要8個統計語句,這樣子就可以等於一次執行完成了。

shell 執行指令碼

第一行,宣告直譯器 bin bash 符號能夠被核心識別成是乙個指令碼的開始,這一行必須位於指令碼的首行,bin bash是bash程式的絕對路徑,在這裡表示後續的內容將通過bash程式解釋執行。shell指令碼的執行 1 輸入指令碼的絕對路徑或相對路徑 root helloworld.sh hel...

多執行緒執行shell指令碼

分享乙個在linux下模擬多執行緒的併發指令碼,使用這個指令碼可以同時批量在定義數量的伺服器上執行相關命令,比起普通for while迴圈只能順序一條一條執行的效率高非常多,在管理大批伺服器時非常的實用。以下指令碼功能是通過scp 也可選rsync 向上千台伺服器傳更新包,指令碼執行後同時在後台有5...

shell 多執行緒示例

shell指令碼本身不支援多執行緒語法,這裡所說的多執行緒本質上是使部分 在後台執行 多程序 使cpu自動的呼叫各個程序,最大限度的利用cpu的效能。這裡所說的能使用多執行緒的場景值得是部分 塊可以並行執行,相互之間沒有影響的情況。bin bash echo begin for num in seq...