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...