zoukankan      html  css  js  c++  java
  • 用shell写个简单的log监控程序

    检查apache的error log和mysql slow query log,可以及时的发现问题。但在开发和运营的过程中,如果没有意识到有错误发生,我们往往不会主动的查看log的习惯,而且每天查看log也不现实。

    但是不明显的错误不表示没有错误,潜在的问题往往是最严重的问题。因此写个log监控程序很有必要。

    #!/bin/sh

    ADDRESS='email1@domain.com email2@domain.com'
    APACHE_ERROR_LOG='/usr/local/apache/logs/error_log'

    if [ `/usr/bin/wc -c < ${APACHE_ERROR_LOG}` -ne `/usr/bin/wc -c < ${APACHE_ERROR_LOG}.old` ];
    then
      diff ${APACHE_ERROR_LOG}.old ${APACHE_ERROR_LOG} | mail -s '194 apache error log' ${ADDRESS}
    fi

    rm -f ${APACHE_ERROR_LOG}.old
    cp ${APACHE_ERROR_LOG} ${APACHE_ERROR_LOG}.old
    chmod 666 ${APACHE_ERROR_LOG}.old

    MYSQL_SLOW_LOG='/log/mysql-slow-query'

    if [ `/usr/bin/wc -c < ${MYSQL_SLOW_LOG}` -ne `/usr/bin/wc -c < ${MYSQL_SLOW_LOG}.old` ];
    then
      diff ${MYSQL_SLOW_LOG}.old ${MYSQL_SLOW_LOG} | mail -s '194 mysql slow log' ${ADDRESS}
    fi

    rm -f ${MYSQL_SLOW_LOG}.old
    cp ${MYSQL_SLOW_LOG} ${MYSQL_SLOW_LOG}.old
    chmod 666 ${MYSQL_SLOW_LOG}.old

    将以上代码保存为:notify_error.sh,在apache和mysql的log目录下分别建立原文件的备份error_log.old和mysql-slow-query.old文件(用于文件比对)

    设定监控程序为守护进行,比如上班时间每小时执行一次:

    cd /var/spool/cron/
    之后运行crontab -e

    键入如下内容,保存
    30 8-18 * * * /home/sh/notify_error.sh

    ok。以后每当apache 有error 发生,或者mysql有slow query发生,就可以及时收到邮件提醒了。

  • 相关阅读:
    怎么查看京东店铺的品牌ID
    PPT编辑的时候很卡,放映的时候不卡,咋回事?
    codevs 1702素数判定2
    codevs 2530大质数
    codevs 1488GangGang的烦恼
    codevs 2851 菜菜买气球
    hdu 5653 Bomber Man wants to bomb an Array
    poj 3661 Running
    poj 1651 Multiplication Puzzle
    hdu 2476 String Painter
  • 原文地址:https://www.cnblogs.com/rethink/p/1554690.html
Copyright © 2011-2022 走看看