工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 3888|回复: 10

[SHELL we talk之一]ping所有主机的shell脚本

[复制链接]
发表于 2006-3-19 18:57 | 显示全部楼层 |阅读模式
近来学习linux shell下的编程,

边学边用,写了一个ping所有主机的脚本.

先放出代码吧.

  1. #!/bin/sh
  2. #pingall
  3. #2006.3.19
  4. #从/etc/hosts文件中找出主机信息,过滤后剩下IP项,再ping该主机.
  5. cat /etc/hosts | grep -v ^# |grep -v ^$ | while read LINE
  6. do
  7.    for M in `awk '{print $1}'`
  8.     do
  9.       ping -c1 $M
  10.    done
  11. 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下去的.

[ 本帖最后由 hjack 于 2006-3-27 12:41 编辑 ]
发表于 2006-3-19 21:20 | 显示全部楼层
好深奥~~~
回复

使用道具 举报

发表于 2006-3-19 21:23 | 显示全部楼层
楼主,,,share下你学shell看些什么书籍资料...我最近在狂郁闷...
回复

使用道具 举报

发表于 2006-3-20 00:41 | 显示全部楼层
谢谢分享!!!
回复

使用道具 举报

 楼主| 发表于 2006-3-20 13:04 | 显示全部楼层
主要是看<LINUX与UNIX SHELL编程指南>,电子版的.
还有就是在学校借的<精通unix shell脚本编程>
回复

使用道具 举报

发表于 2006-3-20 21:55 | 显示全部楼层
楼上的,,,我下午去学校图书馆找不到你说的这本书...
回复

使用道具 举报

 楼主| 发表于 2006-3-20 22:13 | 显示全部楼层
貌似我借的时候只有一本的说....em016
回复

使用道具 举报

发表于 2006-3-22 11:18 | 显示全部楼层
版主麻烦发你那书的电子版给我行吗?

我这里有上几个G的英文原版电子书, 互相Share.
回复

使用道具 举报

发表于 2006-3-22 15:55 | 显示全部楼层
原帖由 hjack 于 2006/3/20 02:13 PM 发表
貌似我借的时候只有一本的说....em016



原来是你...:L
回复

使用道具 举报

发表于 2008-6-9 01:00 | 显示全部楼层
Shell we talk 6...
回复

使用道具 举报

发表于 2008-6-9 01:09 | 显示全部楼层
挖坟
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2024-5-16 20:48

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表