shell脚本监控网站状态详解程序员

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

(0)
上一篇 2021年7月15日
下一篇 2021年7月15日

相关推荐

发表回复

登录后才能评论