首页 > 代码库 > fast_ping
fast_ping
快速的ping网络中存活的主机,该脚本有并行执行的特点,能够在后台快速完成网络主机的检查。
#!/bin/bash # # for ip in 192.168.1.{1..255} ; do ( ping $ip -c 2 &>/dev/null ; if [ $? -eq 0 ]; then echo $ip is alived fi )& done wait
如果要出事255个地址,ping每一个IP的主机都有一个延迟,所以采用并行方式来加速ping命令的执行。将循环体放入到()&.命令块放入(),使其中的命令可作为子shell来执行,而&可以使之脱离当前线程,在后台继续运行。
for循环执行多个后台进程,然后结束循环并终止脚本。等所有子进程结束后在终止脚本,我们的使用过wait命令。将wait命令放在脚本的最后,他就会一直等到所有的子进程全部结束,
wait命令使用脚本只有在所有子进程或者后台进程全部终止或完成之后才能结束。
执行后的结果类似如下:
[root@localhost tmp]# ./ping 192.168.1.4 is alived 192.168.1.1 is alived 192.168.1.6 is alived 192.168.1.10 is alived 192.168.1.12 is alived 192.168.1.15 is alived 192.168.1.16 is alived 192.168.1.30 is alived 192.168.1.28 is alived 192.168.1.32 is alived 192.168.1.33 is alived 192.168.1.50 is alived 192.168.1.51 is alived 192.168.1.52 is alived 192.168.1.124 is alived 192.168.1.131 is alived 192.168.1.22 is alived 192.168.1.39 is alived
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。