linux自动检测网站并发送邮件提醒

 

一 功能
定时自动检测网站是否能访问,如不能访问,发邮件(邮箱正好有短信功能,现在第三方飞信有接口可以直接发手机)

 

二 平台
fedora 6

 

三 实现过程

 

1 ckurls.sh(shell)内容如下(别忘了加执行权限):

 

#!/bin/bash
urls='http://1.com http://2.com'
msg=''
for url in $urls
do
  curl -sf $url
  state=$?
  if [ $state != 0 ]; then
    msg=$msg$url/($state/)
  fi
done
if [ $msg != '' ]; then
  echo 'wrong'|mail -s $msg [email protected]
  echo "`date +/"+%F %T/"` $msg ">> /ew/sh/ckurls.log
fi

 

补充:
$? 指访问状态,具体数字含义可以用查帮助
# man curl|grep 52
0 正常
6 不能解析
7 web服务挂掉了
52 服务器有问题或者是TCP窗口缩放问题

 

2 邮件服务是否打开,如果没打开,一定要打开,不然不能发邮件

 

# /etc/init.d/sendmail status
sendmail (pid 23502 23494) is running...

 

3 定时,每天从7-22点每隔20分钟检测一次

 

# crontab -e

 

*/20 7-22 * * * /ew/sh/ckurls.sh

 

你可能感兴趣的:(linux自动检测网站并发送邮件提醒)