并发 ping

参考

[[email protected] ~]# cat 5.sh
#!/bin/bash
# 2006-7-12, by wwy
#-----------------------------------------------------------------------------------
# 此例子说明了一种用wait、read命令模拟多线程的一种技巧
# 此技巧往往用于多主机检查,比如ssh登录、ping等等这种单进程比较慢而不耗费cpu的情况
# 还说明了多线程的控制
#-----------------------------------------------------------------------------------
ps (){
if ping -c1 -w3 $1 >/dev/null 2>&1
then
echo
echo $1 is ok
else
echo $1 is fail
fi
}

function a_sub { # 此处定义一个函数,作为一个线程(子进程)
sleep 3 # 线程的作用是sleep 3s
}

tmp_fifofile="/tmp/$$.fifo"
mkfifo $tmp_fifofile      # 新建一个fifo类型的文件
exec 6<>$tmp_fifofile      # 将fd6指向fifo类型
rm $tmp_fifofile

thread=100 # 此处定义线程数
for ((i=0;i<$thread;i++));do
echo
done >&6 # 事实上就是在fd6中放置了$thread个回车符

#for ((i=0;i<50;i++));do # 50次循环,可以理解为50个主机,或其他
for i in 192.168.1.{1..254};do
read -u6
# 一个read -u6命令执行一次,就从fd6中减去一个回车符,然后向下执行,
# fd6中没有回车符的时候,就停在这了,从而实现了线程数量控制

{ # 此处子进程开始执行,被放到后台
#此处填写循环内容
ps $i
      echo >&6 # 当进程结束以后,再向fd6中加上一个回车符,即补上了read -u6减去的那个
} &

done

wait # 等待所有的后台子进程结束
exec 6>&- # 关闭df6

exit 0

1到254  线程数位100的话并发ping一共要3次

for i in {10.0.0.{1..10},192.168.1.{1,2,254}} #不通网段ip

时间: 2024-10-12 21:29:22

并发 ping的相关文章

并发ping监测网络状态

""" 网络监测v2.0,改进为使用多进程并发监测多个IP或域名,更加高效 兼容WINXP系统 同时检查本地到baidu.com或qq.com等的通讯情况并附至邮件,可以更客观地了解本地网络情况 linxingyi 20160305 """ import os, time,subprocess, smtplib, datetime, platform from multiprocessing import Pool from email.head

服务器监控软件之分析对比(一)

历史悠久的Cacti,Nagios 近年来逐渐热门的Zabbix,Icinga 以及关于监控多点网络延迟状态的并发ping工具:Smokeping,HostMonitor 1. cacti 对于此工具,运维网做的更专业更傻瓜化,甚至对于增强版 CactiEX 也是. http://www.cnyunwei.com 2.Nagios 相信搞网络管理,运维管理的人都知道这款老牌监控软件,功能很强大,但是配置起来没有像cacti这样的一体包,手动配置更灵活,但调试起来也是比较累人的.网上资源很多. 3

Shell 脚本 100 例《二》

11. 编写脚本,实现人机<石头,剪刀,布>游戏 #!/bin/bash #Author:丁丁历险(Jacob) game=(石头 剪刀 布) num=$[RANDOM%3] computer=${game[$num]} #通过随机数获取计算机的出拳 #出拳的可能性保存在一个数组中,game[0],game[1],game[2]分别是 3 中不同的可能   echo "请根据下列提示选择您的出拳手势" echo "1.石头" echo "2.剪

shell 变成100例

本文摘自:https://zhuanlan.zhihu.com/p/84529054 侵权必删!!!!! 1.编写hello world脚本 #!/bin/bash # 编写hello world脚本 echo "Hello World!" 2.通过位置变量创建 Linux 系统账户及密码 #!/bin/bash # 通过位置变量创建 Linux 系统账户及密码 #$1 是执行脚本的第一个参数,$2 是执行脚本的第二个参数 useradd "$1" echo &qu

06Shell并发控制

并发控制 文件描述 文件句柄 File Descriptors (FD,文件描述符)或 文件句柄: 进程使用文件描述符来管理打开的文件 注意 1.如何通过exec打开一个文件 exec 数字<> 文件名称 数字:/proc/$$/fd中未出现的数字 文件名称:相对路径或者绝对路径 2.如何通过exec关闭一个文件(释放文件句柄) exec 数字<&- 3.当一个文件FD没有被释放,删除原文件也不会影响FD 示例说明 [[email protected] ~]# ll /proc/

视频在线率统计——基于驱动总线设备的领域驱动设计方法落地

目录 视频在线率统计--基于驱动总线设备的领域驱动设计方法落地 1.应用背景 2.各视频在线率统计方法比较 3.本文侧重点 4.基于领域驱动来设计摄像头网络状态这一领域 4.1 值对象driverContext 4.2 子领域CameraPingDM 4.2.1 枚举类型摄像头网络状态CameraState 4.2.2 属性 4.2.3 子领域的划分 4.3 聚合CameraPingBus 4.3.1 属性 4.3.3 与CameraPingDM所有子领域相关的行为 4.3.4 领域模型字段在数

构建高并发高可用的电商平台架构实践

从各个角度总结了电商平台中的架构实践,由于时间仓促,定了个初稿,待补充完善,欢迎大家一起交流. 转载请声明出处:http://blog.csdn.net/yangbutao/article/details/12242441 作者:杨步涛 关注分布式架构.大数据.搜索.开源技术 QQ:306591368 技术Blog:http://blog.csdn.net/yangbutao 一. 设计理念 1.      空间换时间 1)      多级缓存,静态化 客户端页面缓存(http header中包

高并发电子商务平台技术架构

原文出自:http://blog.csdn.net/yangbutao/article/details/12242441 http://stamen.iteye.com/blog/1525924 我自己的大型B2B和B2C站点原来也是用Hibernate,可是后来不得不换成mybatis, 第一是用Hibernate 因为它封装得太高了.非常多东西是隐式进行的.常常引起问题,非常难定位.毕竟凡事有利必有弊: 第二大型站点肯定不是一个数据库.这点Hibernate是非常麻烦的,用Jdbc或Myba

构建高并发高可用的电商平台架构实践(上)

构建高并发高可用的电商平台架构实践(上) 一. 设计理念 1.      空间换时间 1)      多级缓存,静态化 客户端页面缓存(http header中包含Expires/Cache of Control,last modified(304,server不返回body,客户端可以继续用cache,减少流量),ETag) 反向代理缓存 应用端的缓存(memcache) 内存数据库 Buffer.cache机制(数据库,中间件等) 2)      索引 哈希.B树.倒排.bitmap 哈希索