亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Linux Shell > 正文

分享一個入門級可控多線程shell腳本代碼

2020-07-27 19:02:59
字體:
來源:轉載
供稿:網友

說到shell可控多線程,網上分享的大部分是管道控制的方案。這種方案,張戈博客也曾經實戰并分享過一次:《Shell+Curl網站健康狀態檢查腳本,抓出中國博客聯盟失聯站點》,感興趣的朋友可以看看。

分享一個入門級可控多線程shell腳本方案

下面張戈博客再分享另一種更容易理解的入門級可控多線程shell腳本方案:任務切割、各個擊破。

先來 1 段場景描述:

某日,在鵝廠接到了這個任務,需要在Linux服務器中,對幾千個IP進行一次Ping檢測,只要取得ping可達的IP就好。如果單個IP去ping測試,雖然也可以完成任務,幾千個IP還好了,如果更多呢?

鑒于這個case簡單程度,第一時間先放棄了以前用過的管道方案,而是采用了各個擊破的思想。

簡單思路:

按照任務切割的“戰略思想”,我先將這幾千IP存入一個iplist文件,然后寫一個分割函數,將這個文件分成多份臨時IP清單,最后,用多線程遍歷這些臨時IP文件即可變相實現多線程了。

具體代碼:

#!/bin/sh#文本分割函數:將文本$1按份數$2進行分割SplitFile(){ linenum=`wc -l $1 |awk '{print $1}'` if [[ $linenum -le $2 ]] then echo "The lines of this file is less then $2, Are you kidding me..." exit fi Split=`expr $linenum / $2` Num1=1 FileNum=1 test -d SplitFile || mkdir -p SplitFile rm -rf SplitFile/* while [ $Num1 -lt $linenum ] do Num2=`expr $Num1 + $Split` sed -n "${Num1}, ${Num2}p " $1 > SplitFile/$1-$FileNum Num1=`expr $Num2 + 1` FileNum=`expr $FileNum + 1` done} #Define some variablesSPLIT_NUM=${1:-10} #參數1表示分割成多少份即,開啟多少個線程,默認10個FILE=${2:-iplist} #參數2表示分割的對象,默認iplist文件 #分割文件SplitFile $FILE $SPLIT_NUM #循環遍歷臨時IP文件for iplist in $(ls ./SplitFile/*)do #循環ping測試臨時IP文件中的ip(丟后臺) cat $iplist | while read ip do ping -c 4 -w 4 $ip >/dev/null && echo $ip | tee -ai okip.log #ping 可達的IP則寫入日志 done & #在while循環后面加上&符號,讓這個嵌套循環在后臺執行done

將代碼保存為ping.sh之后,執行 sh ping.sh iplist 100 的過程如下:
先將iplist切割成100份,存放在 SplitFile 文件夾中

然后,通過for循環讀取這些分割文件,并在后臺使用while循環對其中ip執行ping命令。
由于while是丟后臺的, 所以for循環會一次性執行100個while,相當于開啟了100個線程,速度自然不可同日而語矣。
其中,切割的份數即你想要開啟的多線程數量,很明顯,這種任務分割的思路雖然沒有管道方案來的高大上,但是其思想更加簡單易懂,而且通用性也更好,適合入門級的簡單多線程任務。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产国产精品人在线视| 成人国产亚洲精品a区天堂华泰| 91社区国产高清| 亚洲精品suv精品一区二区| 欧美俄罗斯乱妇| 日韩av不卡电影| 91日本在线观看| 国产精品视频网址| 日本亚洲欧洲色| 成人av番号网| 国产男女猛烈无遮挡91| 欧美日韩在线免费| 国产精品丝袜高跟| 欧美xxxx14xxxxx性爽| 成人黄色av网站| 亚洲精品在线观看www| 亚洲成人免费在线视频| 成人情趣片在线观看免费| 欧美精品一区在线播放| 国产精品欧美日韩一区二区| 日韩欧美亚洲范冰冰与中字| 中文字幕亚洲一区在线观看| 国产一区二区三区丝袜| 亚洲国产91色在线| 亚洲一区二区黄| 成人免费福利视频| 欧美日韩精品在线观看| 亚洲男人第一网站| 成人网欧美在线视频| 欧美华人在线视频| 欧美另类老女人| 91av免费观看91av精品在线| 国产精品久久97| 欧美激情图片区| 日韩精品日韩在线观看| 少妇高潮久久77777| 亚洲精品一区二区三区不| 日韩免费观看在线观看| 97超级碰碰人国产在线观看| 欧美日韩福利视频| 精品久久久久久久久久久久久| 亚洲精品午夜精品| 亚洲国产精品成人一区二区| 欧美交受高潮1| 大胆人体色综合| 久久久最新网址| 欧美精品第一页在线播放| 欧美性猛交xxxxx免费看| 日韩精品中文字幕视频在线| 亚洲曰本av电影| 亚洲欧美综合区自拍另类| 亚洲国产高清自拍| 韩国19禁主播vip福利视频| 深夜福利91大全| 国产精品欧美日韩久久| 日韩精品视频免费专区在线播放| 欧美成人中文字幕在线| 日韩av电影在线网| 色在人av网站天堂精品| 亚洲精品一区二区三区婷婷月| 狠狠色狠狠色综合日日小说| 欧美国产日韩在线| 日日摸夜夜添一区| 51午夜精品视频| 久久久亚洲影院你懂的| 精品香蕉在线观看视频一| 欧美噜噜久久久xxx| 久久伊人免费视频| 久久九九热免费视频| 中文字幕亚洲第一| 日韩有码在线观看| 不卡伊人av在线播放| 国产精品v日韩精品| 亚洲自拍偷拍在线| 国产午夜精品理论片a级探花| 久久精品国产成人精品| 精品一区二区电影| 国产精品自拍网| 欧美中文在线免费| 日韩精品高清在线| 国内精品久久久| 日本高清不卡在线| 一区二区三区黄色| 成人免费在线视频网站| 狠狠躁天天躁日日躁欧美| 日韩美女中文字幕| 欧美第一黄色网| 久久精品亚洲94久久精品| 亚洲电影免费在线观看| 亚洲成人精品在线| 亚洲精品98久久久久久中文字幕| 国产精品美女久久久免费| 国产在线一区二区三区| 日韩动漫免费观看电视剧高清| 日韩欧美高清在线视频| 国产91色在线|| 91精品久久久久久久久久另类| 国产美女精品免费电影| 国产精品高清在线观看| 亚洲在线免费看| 97在线免费观看视频| 国产精品热视频| 亚洲日韩欧美视频| 精品一区二区亚洲| 欧美日本高清视频| 亚洲第一级黄色片| 国产欧美日韩91| 亚洲最大激情中文字幕| 欧美大尺度电影在线观看| 91免费观看网站| 成人国产精品色哟哟| 日韩美女视频免费看| 色综合色综合久久综合频道88| 欧美www在线| 中文字幕日韩电影| 久久亚洲精品视频| 91色琪琪电影亚洲精品久久| 国产婷婷97碰碰久久人人蜜臀| 国产精品女主播| 成人黄色av免费在线观看| 国产婷婷97碰碰久久人人蜜臀| 亚洲在线免费看| 国产精品精品国产| 国产精品h在线观看| 国产精品狼人色视频一区| 国产精品激情av在线播放| 亚洲第一精品夜夜躁人人爽| 亚洲欧美三级在线| 亚洲成人亚洲激情| 亚洲午夜久久久久久久| 日本一区二区在线播放| 成人免费视频xnxx.com| 最近2019中文字幕大全第二页| 久久艳片www.17c.com| 亚洲国内高清视频| 欧美性xxxxx极品| 国产精品久久久久99| 欧美国产极速在线| 午夜精品久久17c| 色妞在线综合亚洲欧美| 国产第一区电影| 97视频免费看| 亚洲精品视频免费| 韩国精品久久久999| 日韩av色综合| 91精品国产九九九久久久亚洲| 亚洲国产婷婷香蕉久久久久久| 欧美极品少妇xxxxx| 国产精品扒开腿做爽爽爽的视频| 国产精品一区电影| 久久影视三级福利片| 午夜精品一区二区三区在线视| 青青久久aⅴ北条麻妃| 国产精品一区专区欧美日韩| 日韩av在线网| 国产成人在线一区二区| 最新的欧美黄色| 欧美日韩福利电影| 2024亚洲男人天堂| 国产成人jvid在线播放| 色偷偷av一区二区三区乱| 国产日韩中文字幕| 久久精品国产一区二区三区| 日韩欧美中文字幕在线播放|