shell脚本监控网站状态
#!/bin/sh
date=`date +"%Y%m%d-%H%M"`
title="status"
contentFail="status is not ok:"
contentSuccess="status is ok:"
url="https://www.abc.com"
status=`curl -m 20 -s -I $url | grep HTTP | awk '{print $2}'`
#echo "status: $status"
cd /data/shell
laststatus=`cat status.log`
if [ "$status" == "200" ]
then
if [ "$laststatus" != 200 ]
then
/usr/bin/python /shell/mail.py "$title" "$contentSuccess $url $date $status"
echo "200" > status.log
fi
else
if [ "$laststatus" == 200 ]
then
/usr/bin/python /shell/mail.py "$title" "$contentFail $url $date $status"
echo "$status" > status.log
fi
fi
mail.py
from email.header import Header
from email.mime.text import MIMEText
import smtplib
import sys
def sendmail(subject, content):
sender = '[email protected]'
password = 'abc'
recipients = '[email protected]'
host = 'smtp.abc.com'
msg = MIMEText(content, 'plain', 'utf-8')
msg['From'] = sender
msg['To'] = recipients
msg['Subject'] = Header(subject, 'utf-8').encode()
server = smtplib.SMTP_SSL(host, 465)
server.login(sender, password)
server.sendmail(sender, [recipients], msg.as_string())
server.quit()
sendmail(sys.argv[1],sys.argv[2])
设置定时任务
crontab -e
*/2 * * * * /shell/status.sh
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/2036.html