仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 786|回复: 6
打印 上一主题 下一主题

[shell编程] 带来一篇检测某ip是不是收集流通的剧本

[复制链接]
莫相离 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:14:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!花了1天的工夫写了一个检测某ip是不是收集流通的剧本,只检测收集是不是流通的功效很简单完成,但加了一些限定功效却欠好完成。
#!/bin/bash
####################################################################################
#本剧本放于异机,利用准时义务检测192.168.10.231是不是收集流通,假如欠亨则发短信告警
#为避免频仍收到短信,对发送短信做了以下限定:
#一小时内只发前三条告警短信,也就是假如收集一向欠亨,则每小时内只发前三条短信。
#本剧本只能检测一个ip是不是收集断开,可在入手下手局部加个轮回,检测多个ip
####################################################################################
#初始化情况变量
source/root/.bash_profile
#邮件发送列表
mail_list=135******xx@139.com,zhangwz@xx.net
#ping三次检测的ip
ping=`ping-c3192.168.1.69|awkNR==7{print$4}`
#假如三次均没ping通,则做以下操纵
if[$ping-eq0]
then
#反省mailinfo文件是不是存在,不存在则创建
if[!-e./mailinfo]
then
touch./mailinfo
fi
#猎取以后主机工夫,用于邮件注释的工夫显现
now_time=`date`
#反省./mailinfo的行数是不是为空,假如为空则间接发送邮件
row_num=`wc-l./mailinfo|cut-c1`
if[$row_num-eq0]
then
echo"发邮件"
echo-e"1.69收集已断开,请反省

告警工夫:$now_time"|mutt-s"1.69告警"$mail_list
#更新最初一次发送工夫
date+%Y%m%d-%H%M>./mailinfo
echo1>>./mailinfo
#假如mailinfo内容不为空,则判别(以后工夫减1小时)是不是年夜于前次发送工夫,假如是则发邮件
else
#猎取前次发邮件的日期和工夫
last_date=`head-1./mailinfo|cut-c1-8`
last_time=`head-1./mailinfo|cut-c10-13`
#猎取1小时前的日期和工夫
current_date=`date+%Y%m%d`
current_time=`date+%H%M`
#盘算以后工夫和前次工夫差异多久,加10#是为了避免0开首的字符被当做8进制盘算
lettime_diff=10#$current_time-10#$last_time
#猎取发送次数
send_times=`tail-1./mailinfo`
#以下四种情形发邮件:
#以后日期>前次日期,能够发,然后发送计数send_times置为1
if["$current_date"-gt"$last_date"]
then
echo"发邮件"
echo-e"1.69收集已断开,请反省

告警工夫:$now_time"|mutt-s"1.69告警"$mail_list
#更新最初一次发送工夫
date+%Y%m%d-%H%M>./mailinfo
echo1>>./mailinfo
fi
#以后日期即是前次日期and本次工夫年夜于前次工夫1小时外,能够发,然后发送计数send_times置为1
if["$current_date"-eq"$last_date"-a$time_diff-ge100]
then
echo"发邮件"
echo-e"1.69收集已断开,请反省

告警工夫:$now_time"|mutt-s"1.69告警"$mail_list
#更新最初一次发送工夫
date+%Y%m%d-%H%M>./mailinfo
echo1>>./mailinfo
fi
#以后日期即是前次日期and发送计数send_times置为1,能够发,然后发送次数加1
if["$current_date"-eq"$last_date"-a$send_times-eq1]
then
echo"发邮件"
echo-e"1.69收集已断开,请反省

告警工夫:$now_time"|mutt-s"1.69告警"$mail_list
#更新最初一次发送工夫
date+%Y%m%d-%H%M>./mailinfo
echo2>>./mailinfo
fi
#以后日期即是前次日期and发送计数send_times置为2,能够发,然后发送次数加1
if["$current_date"-eq"$last_date"-a$send_times-eq2]
then
echo"发邮件"
echo-e"1.69收集已断开,请反省

告警工夫:$now_time"|mutt-s"1.69告警"$mail_list
#更新最初一次发送工夫
date+%Y%m%d-%H%M>./mailinfo
echo3>>./mailinfo
fi
fi
fi
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
再现理想 该用户已被删除
沙发
发表于 2015-1-21 07:45:30 | 只看该作者
和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。
板凳
发表于 2015-1-30 11:46:32 | 只看该作者
下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题。
再见西城 该用户已被删除
地板
发表于 2015-2-16 07:23:56 | 只看该作者
我想即使Linux高手也很难快速准确精练的回答你。
冷月葬花魂 该用户已被删除
5#
发表于 2015-3-5 03:34:01 | 只看该作者
Linux是参照Unix思想设计的,理解掌握Linux必须按照Unix思维来进行。思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度。
柔情似水 该用户已被删除
6#
发表于 2015-3-11 23:37:45 | 只看该作者
感谢老师和同学们在学习上对我的帮助。
若相依 该用户已被删除
7#
发表于 2015-3-19 17:26:20 | 只看该作者
期间我阅读了不少关于Linux的相关资料,其中也不乏一些有趣的小故事,这既丰富了我的课余生活,也让我加深了对一些术语的理解,比玩游戏强多了。?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-26 11:18

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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