zoukankan      html  css  js  c++  java
  • 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 = 'abc@163.com'
        password = 'abc'
        recipients = 'abc@qq.com'
        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

     

  • 相关阅读:
    切分文本行
    oracle 导出【转】
    SQL 表A不在表B记录
    Oracle 数据库操作
    oracle 跨表更新
    WPF : ViewPort3D, ModelVisual3D XAML example
    WPF : 3D 最简单的WPF 3D
    WPF : StoryBoard用法
    WPF/SilverLight学习计划
    WPF : 3D 给GeometryModel3D对象贴图
  • 原文地址:https://www.cnblogs.com/taiguyiba/p/10521227.html
Copyright © 2011-2022 走看看