LINUX Shell:ping所有主机的shell脚本
2006-03-27 20:43
363 查看
近来学习linux shell下的编程,
边学边用,写了一个ping所有主机的脚本.
先放出代码吧.
CODE:
#!/bin/sh
#pingall
#2006.3.19
#从/etc/hosts文件中找出主机信息,过滤后剩下IP项,再ping该主机.
cat /etc/hosts | grep -v ^# |grep -v ^$ | while read LINE
do
for M in `awk '{print $1}'`
do
ping -c1 $M
done
done
注释:
cat file是显示文件.
grep是文本过滤,-v选项是显示不包含匹配文本的行,^#表示以#开头的行.
grep -v ^# 表示不显示以#开头的行.
grep -v ^$ 表示不显示空行.
通过管道(|)的方式把前者的输出作为后者的输入.
并用while读取只有IP的文本的每一行.
用awk命令来输出该IP串.注意,`awk '{print $1}'`里,外面是用反引号引起来的,里面的是单引号.要区分开来,反引号表明这是一个命令.而单引号是awk要求的.
再用for来遍历每行IP串,在for里进行ping主机.用了-c选项,这样可以在ping了c选项指定的次数后退出ping命令.否则会一直ping下去的.
边学边用,写了一个ping所有主机的脚本.
先放出代码吧.
CODE:
#!/bin/sh
#pingall
#2006.3.19
#从/etc/hosts文件中找出主机信息,过滤后剩下IP项,再ping该主机.
cat /etc/hosts | grep -v ^# |grep -v ^$ | while read LINE
do
for M in `awk '{print $1}'`
do
ping -c1 $M
done
done
注释:
cat file是显示文件.
grep是文本过滤,-v选项是显示不包含匹配文本的行,^#表示以#开头的行.
grep -v ^# 表示不显示以#开头的行.
grep -v ^$ 表示不显示空行.
通过管道(|)的方式把前者的输出作为后者的输入.
并用while读取只有IP的文本的每一行.
用awk命令来输出该IP串.注意,`awk '{print $1}'`里,外面是用反引号引起来的,里面的是单引号.要区分开来,反引号表明这是一个命令.而单引号是awk要求的.
再用for来遍历每行IP串,在for里进行ping主机.用了-c选项,这样可以在ping了c选项指定的次数后退出ping命令.否则会一直ping下去的.
相关文章推荐
- 生产环境Shell脚本Ping监控主机是否存活(多种方法)
- Linux shell编程 5 ---- 利用shell脚本遍历某个目录下的所有文件
- shell脚本监控(ping)主机是否存活
- ping 一个网段主机的shell脚本
- shell脚本学习(1)列出一组IP内所有活动主机
- shell 脚本:ping一个网段的所有ip 和 隔一秒显示当前的时间
- shell脚本ping网段所有IP
- Linux Shell编程(3)——运行shell脚本
- ping主机脚本
- Shell脚本递归打印指定目录中所有目录文件
- Shell 命令--paste--总结自《Linux Shell 脚本攻略》
- shell脚本编写ping包及arp的监控并发送短信功能
- Shell 命令--文件创建、搜索命令--总结自《Linux Shell 脚本攻略》
- 远程所有主机执行相同命令脚本
- Linux Shell 脚本应用 ——shell命令的组合运用
- 常用的主机监控shell脚本
- shell脚本下所有的重定向操作
- 【shell脚本学习】1.linux shell基础
- shell脚本备份mysql并自动ftp到远程主机
- [shell脚本] linux shell简介