shell脚本:批量ping N个不连续的IP地址
2023-06-13 09:13:36 时间
序言:
Windows系统中批量ping地址时我们长用PingInfoView工具,简单方便实用;而linux中想批量pingIP地址,就得使用脚本了,这里小编和大家分享一个ping脚本。
首先奉上shell脚本,不想编写的可以点击文末下载ping.sh文件(提取码:tj3v),直接拷贝到centos中运行。
#! /bin/bash
for i in `cat iplist`
do
ping=`ping -c 3 $i|grep loss|awk '{print $6}'|awk -F "%" '{print $1}'`
if [ $ping -eq 0 ];then
echo ping $i ok
else
echo ping $i fail
fi
done
命令解释:
1、ping.sh脚本和脚本中要读取IP地址的iplist文件在同一个目录。
2、使用awk命令提取ping IP返回后丢失loss的百分比数字是100还是0。
ping.sh脚本第4行详解:
ps:这边因为-c 3是ping3个包,且不考虑有丢包的情况,也可以直接-c 1,直接ping 1个包。
3、if语句是比较awk取的值是否为0的,也有比较100的,理论是一样的。但是我自己测试ping IP地址有3种返回值。
第一种、网络正常,0%丢包。
第6列awk命令提取的值为0
第二种、网络不通,100%丢包。
第6列awk命令提取的值为100
第三种、网络不通,100%丢包,但中间多了2列参数。
第6列awk命令提取的值为+3 综上所述,awk命令第一次使用时取第6列值,且和数值0比较(if=0网络ok,else网络fail),前面两种是没问题,遇到第3种情况:+3是≠0的,满足else条件,网络fail; 若awk取值与100比较(if=100网络fail,else网络ok),前面两种是没问题,那么遇到第三种结果为:+3≠100,所以满足else结果,网络ok,但其实上图的192.168.3.254是ping不通的。 结论:所以if语句应该和数值0比较,这样更准确。
相关文章
- linux efi shell,EFI Shell 命令说明「建议收藏」
- linux批量文件重命名命令_shell重命名文件指令
- Shell脚本编程_shell简单脚本
- SHELL – shell 脚本获取本机ip并将ip复制给变量待用详解程序员
- Linux下自定义Shell脚本(linux指定shell)
- shell脚本Linux系统中如何执行Shell脚本(linux如何执行)
- 去抓取数据Oracle通过Shell脚本抓取数据(oracle拿shell)
- 数据库操作Shell脚本与Oracle数据库实现自动操作(shell与oracle)
- 开启Linux系统Shell,探索更多精彩(linux系统shell)
- 脚本Linux下运行Shell脚本的步骤(linux运行shell)
- Linux 命令行与 Shell 脚本编程宝典(linux命令行和shell脚本编程宝典)
- 深入探索Linux下Shell的设置(linux设置shell)
- 数据库使用Shell脚本实现MySQL数据库操作(shell调用mysql)
- MSSQL实用技巧:学习如何拿到Shell(mssql拿shell)
- 学习Linux:命令编辑器与Shell编程(linux命令编辑器与shell编程)
- 脚本Linux下通过调用Shell脚本实现简单的操作(linux调用shell)
- 脚本快速学习执行Linux Shell脚本的技巧(linux 执行shell)
- Shell脚本调用Redis解决数据缓存问题(shell调redis)
- 在Shell中使用Redis快速管理你的数据(shell使用redis)
- 操作简单,通过Shell快速安装Redis服务(shell安装redis)
- 脚本通过Redis获取Shell脚本的简单方法(redis获得shell)
- 用python实现批量重命名文件的代码
- perl批量查询ip归属地的方法代码