免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2948 | 回复: 16
打印 上一主题 下一主题

请教高手这个shell怎么写? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-23 09:17 |只看该作者 |倒序浏览
想写一个ping的脚本文件,要求:
1.同时ping好几台机器
2.输出的日志中只显示ping不通的信息
3.输出日志中显示ping的时间time>100ms的情况

[ 本帖最后由 houxiaolei 于 2008-6-23 09:48 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-06-23 09:38 |只看该作者

shell

哥哥们给点意见啊,小弟急着用啊

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
3 [报告]
发表于 2008-06-23 09:56 |只看该作者

回复 #1 houxiaolei 的帖子

我记得这个版块有过。
#!/bin/sh
while read ipaddr
do
    [ ping $ipaddr -n 1 -w 100 ] || echo "IP $ipaddr 不可达" >> logfile
done << ipfile

论坛徽章:
0
4 [报告]
发表于 2008-06-23 10:00 |只看该作者
#!/bin/sh
#ping.sh
while [ 1 -eq 1 ]
do
ping 10.142.210.31 -n 60|grep -e "error\|From\>">>ping.rn1.$(date +%y%m%d)
ping 10.142.210.31 -n 60|grep -e "error\|From\>">>ping.rn2.$(date +%y%m%d)
ping 10.142.210.33 -n 60|grep -e "error\|From\>">>ping.rn3.$(date +%y%m%d)
ping 10.142.210.34 -n 60|grep -e "error\|From\>">>ping.rn4.$(date +%y%m%d)
ping 10.142.210.35 -n 60|grep -e "error\|From\>">>ping.rn5.$(date +%y%m%d)
ping 10.142.210.36 -n 60|grep -e "error\|From\>">>ping.rn6.$(date +%y%m%d)
ping 10.142.210.37 -n 60|grep -e "error\|From\>">>ping.rn7.$(date +%y%m%d)
ping 10.142.210.38 -n 60|grep -e "error\|From\>">>ping.rn8.$(date +%y%m%d)
ping 10.142.210.39 -n 60|grep -e "error\|From\>">>ping.rn9.$(date +%y%m%d)
done
我写了这个,不知道能不能执行的通,出来的结果不知道怎么样?

论坛徽章:
0
5 [报告]
发表于 2008-06-23 10:01 |只看该作者

回复 #3 liaosnet 的帖子

您能不能具体的说明一下脚本里面的各个部分的意思,我新手刚学有些东西不太懂

论坛徽章:
0
6 [报告]
发表于 2008-06-23 10:06 |只看该作者
原帖由 houxiaolei 于 2008-6-23 10:01 发表
您能不能具体的说明一下脚本里面的各个部分的意思,我新手刚学有些东西不太懂

每一条语句都很简单,应该自己先去看命令手册,搞不清楚的再来提问.新手不是理由,每个人都是从新手过来的,需要的是自己努力摆脱新手这个称呼

论坛徽章:
0
7 [报告]
发表于 2008-06-23 10:11 |只看该作者

回复 #6 jinl 的帖子

谢谢您的教诲啊,只是我这个东西急着用,就想问的更明白一些,你说的那些东西我肯定要学习的,现在不是情况急吗

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
8 [报告]
发表于 2008-06-23 10:43 |只看该作者
#!/bin/sh
# FOR RHEL AS 3
for ((i=1;i<10;i++))
do
   ping 10.142.210.3${i} -c 2 -w 2 > tempping.file 2>/dev/null
   if [ $? -eq 0 ];then
      tail -n 1 tempping.file | awk -F'/' -v outfile="ping.rn1.$(date +%y%m%d)" -v ipaddr="10.142.210.3${i}" '{if($5>0.2){print "ping "ipaddr"is max than 200ms.">>outfile;}else{print "ping"ipaddr"succed.">> outfile;}}'
   fi
done

论坛徽章:
0
9 [报告]
发表于 2008-06-23 10:51 |只看该作者

回复 #8 liaosnet 的帖子

谢谢了哥们,麻烦你了!!以后要多向你学习了

论坛徽章:
0
10 [报告]
发表于 2008-06-23 11:54 |只看该作者
#!/bin/bash

ipaddrlist=(10.158.6.50 10.158.6.51 10.158.6.167)
len=${#ipaddrlist[@]}

for((i=0;i<len;i++))
do
        echo ${ipaddrlist[$i]}
        result=`ping -w 1 -c 1 ${ipaddrlist[$i]} | sed -n '/time=/p' | awk -F'[=. ]+' '{print $13}'`
        if [ "$result" == "" ]
        then
                echo "${ipaddrlist[$i]} isn't ping" >> ping.log
        elif [ $result -gt 100 ]
        then
                echo "${ipaddrlist[$i]} is too slowly" >> ping.log
        else
                echo "succ"
        fi
done
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP