如何实现可控多线程shell脚本
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关如何实现可控多线程shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先来 1 段场景描述:某日,在鹅厂接到了这个任务,需要在L
千家信息网最后更新 2026年11月01日如何实现可控多线程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个线程,速度自然不可同日而语矣。
其中,切割的份数即你想要开启的多线程数量,很明显,这种任务分割的思路虽然没有管道方案来的高大上,但是其思想更加简单易懂,而且通用性也更好,适合入门级的简单多线程任务。
关于"如何实现可控多线程shell脚本"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
文件
线程
循环
任务
后台
思想
更多
篇文章
脚本
代码
份数
函数
参数
思路
文本
方案
管道
先将
测试
不错
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技海报
高科技互联网
互联网科技公司华为
互联网为科技
没上市的科技互联网公司
互联网科技开发公司
万易互联网科技有限公司
互联网金融科技平台
四川狮子座互联网科技
成都狮子座互联网科技
四个字互联网科技公司取名
哈尔滨秒房互联网科技有限公司
温州喔噻互联网科技有限公司
港股科技和互联网
互联网时代科技型公司的机会
安徽零酒互联网科技有限公司
北京品多多互联网科技有限公司
互联网科技大会大佬
承德科技产业互联网平台
互联网大会出现的黑科技
关于新基建和互联网科技
奇酷互联网科技
互联网金融科技平台
阿大互联网科技有限公司
呼和浩特新华互联网科技学院
云南省自由互联网科技有限公司
全球科技与互联网公司市值变化
马化腾互联网科技教学
现代互联网科技公司
上海互联网科技园景观