Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1563867
  • 博文数量: 293
  • 博客积分: 10127
  • 博客等级: 上将
  • 技术积分: 3029
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-12 19:05
文章分类

全部博文(293)

文章存档

2011年(11)

2010年(282)

我的朋友

分类: LINUX

2010-08-16 21:27:11

近来学习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下去的
阅读(4743) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~