生产环境批量检查web服务是否正常并且发送相关邮件或手机报警
2015-07-27 18:48
489 查看
[root@jason ~]# cat check_url.sh
#!/bin/bash
. /etc/init.d/functions #加载系统函数库
RETVAL=0 #定义初始变量为0,后边做返回值用
script_path=/root #定义脚本路径
mail_group="280834114@qq.com" #群组邮箱,可写多个地址
phone_group="18220858831" #群组手机号码
log=/tmp/check_url.log #日志路径
failcount=0 #定义初始失败次数为0
function GetUrlStatus(){ #函数
for ((i=1;i<=3;i++))
do
wget -T 2 -q --spider http://${1} >&/dev/null #检查网站是否正常 ${1}为参数
[ $? -ne 0 ]&& let failcount+=1 #如果检查一次不正常 failcount变量自增1
done
if [ $failcount -gt 1 ];then #如果failcount大于1,即检查失败2次,则报警 接下来是报警内容
RETVAL=1
nowtime=`date +"%m-%d %H:%M:%S` #时间
content="$HOSTNAME service is error,${nowtime}." #报警内容
echo "send to :$mail_group ,title:$content" > $log #写入日志的内容
for mail_user in $mail_group #从邮箱组中循环取邮箱地址
do
mail -s "$content" $mail_user < $log #发送邮件 并导入并发送$log日志中的内容
done
else
RETVAL=0 #如果检查正常 则返回值变量仍为0
fi
return $RETVAL
}
#check_list: #定义一个所检查网站的文件,所检测网站均在这个文件中
cat >$script_path/ip_domain.list<<EOF
192.168.1.220
www.baidu.com
EOF
#service check
for url in `cat $script_path/ip_domain.list` #url变量从文件选取要检查的网站
do
echo -n "checking $url: " #显示检查的哪个网站
GetUrlStatus $url && action "successful" /bin/true ||\ #调用函数 $url 即为函数中的${1}
action "failure" /bin/false
done
#!/bin/bash
. /etc/init.d/functions #加载系统函数库
RETVAL=0 #定义初始变量为0,后边做返回值用
script_path=/root #定义脚本路径
mail_group="280834114@qq.com" #群组邮箱,可写多个地址
phone_group="18220858831" #群组手机号码
log=/tmp/check_url.log #日志路径
failcount=0 #定义初始失败次数为0
function GetUrlStatus(){ #函数
for ((i=1;i<=3;i++))
do
wget -T 2 -q --spider http://${1} >&/dev/null #检查网站是否正常 ${1}为参数
[ $? -ne 0 ]&& let failcount+=1 #如果检查一次不正常 failcount变量自增1
done
if [ $failcount -gt 1 ];then #如果failcount大于1,即检查失败2次,则报警 接下来是报警内容
RETVAL=1
nowtime=`date +"%m-%d %H:%M:%S` #时间
content="$HOSTNAME service is error,${nowtime}." #报警内容
echo "send to :$mail_group ,title:$content" > $log #写入日志的内容
for mail_user in $mail_group #从邮箱组中循环取邮箱地址
do
mail -s "$content" $mail_user < $log #发送邮件 并导入并发送$log日志中的内容
done
else
RETVAL=0 #如果检查正常 则返回值变量仍为0
fi
return $RETVAL
}
#check_list: #定义一个所检查网站的文件,所检测网站均在这个文件中
cat >$script_path/ip_domain.list<<EOF
192.168.1.220
www.baidu.com
EOF
#service check
for url in `cat $script_path/ip_domain.list` #url变量从文件选取要检查的网站
do
echo -n "checking $url: " #显示检查的哪个网站
GetUrlStatus $url && action "successful" /bin/true ||\ #调用函数 $url 即为函数中的${1}
action "failure" /bin/false
done
相关文章推荐
- 简单了解Markdown
- 【MFC-7】VS2010编程之浏览文件夹
- hdu 3335 最大独立集,疑惑
- scala下划线的含义
- 宏定义(const)和常量定义(#define)的区别
- 了解DataTables
- Service在前台运行
- 利用iptables给Docker绑定一个外网IP
- 2008 Asia Regional Beijing
- python tab补全
- UVA 10970 Big Chocolate
- codeforces Gym 100500C C. ICPC Giveaways 排序
- QT之write and read
- 导出结果跟查询结果不一致
- leetcode 060 —— Permutation Sequence
- Java中的可变参数(来自《Java编程手记》一书)
- 深入浅出Android App耗电量统计
- leetcode oj 2
- [HAOI2005]路由问题,第二短路
- ixgbe rx_missed_errors