好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 分享一個入門級可控多線程shell腳本代碼

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

熱門標簽:百度地圖標注直線距離 天津電話外呼系統排名 智能電銷機器人有用嗎 德陽400電話申請 怎么在百度地圖標注公司的位置 鶴崗400電話申請 商機地圖標注 測繪地圖標注名稱 外呼電話系統怎么操作

說到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 variables
SPLIT_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個線程,速度自然不可同日而語矣。
其中,切割的份數即你想要開啟的多線程數量,很明顯,這種任務分割的思路雖然沒有管道方案來的高大上,但是其思想更加簡單易懂,而且通用性也更好,適合入門級的簡單多線程任務。

您可能感興趣的文章:
  • 一篇教會你寫90%的shell腳本(入門小結)
  • linux shell(.sh)腳本編寫和運行入門
  • Shell腳本編程30分鐘入門(小結)
  • Linux Shell 腳本編程入門教程
  • Linux Shell腳本系列教程(一):Shell入門
  • linux Shell入門:掌握Linux,OS X,Unix的Shell環境
  • 3000字掃盲shell基礎知識(新手必備)

標簽:優質小號 自貢 武漢 百色 滁州 丹東 鎮江 六盤水

巨人網絡通訊聲明:本文標題《分享一個入門級可控多線程shell腳本代碼》,本文關鍵詞  分享,一個,入門,級,可控,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《分享一個入門級可控多線程shell腳本代碼》相關的同類信息!
  • 本頁收集關于分享一個入門級可控多線程shell腳本代碼的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 久久久久久久久久久一区二区| 日韩伦理在线看不卡| 欧美 日韩 中文 制服 人妻| 91精产国品产区区| 国内高端ts龚璟璇接了个| 国产ts惠奈酱群妖互玩| 偷玩男生大jiji秘?免费网站| 女人被老外躁得好爽免费视频 | 张筱雨一级A片免费看| GOGO西西人体大胆高清密l实 | 亚洲精品国产成人片在线观看一区二区三区 | 二次元蕾丝内裤露出小奶头福利| 精品视频免费看| www久久久久| 日本黄色免费片| yy6808午夜久久久久精品| 久久精品亚洲AV无码毛笔的| 被男同桌在教室摸到娇喘| 成a人v午夜电影在线观看| chinaxxxx| 乳色吐息1~2无删减星辰| 波罗野结衣被躁57分钟| 日本zzzwww大片免费| 父亲动漫在线观看完整免费| 亚洲国产成人久久午夜| 被黑人猛烈做到抽搐| 91国久拍偷拍一区二区vids| jk漫画下载app| 色情大片AAAAAA视频性迷宫| 亚精产品一区一区二区产品乱码| 边摸边吃奶边叫床激情视频| 日本公共浴室偷窥hd| 91精品夜夜夜一区二区三区| 女人高潮叫床声嗯嗯阿啊| 日本黄网站动漫视频免费| 葡萄不能夹烂也不能掉出来po| 黄色一级视频播放| 两个奶头被吃高潮受不了| 正在播放国产精品国语对白| 老女人色黄大片| 91网站免费观看|