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发生,就可以及时收到邮件提醒了。

  • 相关阅读:
    expdp使用
    sed命令(二)
    linux的sed命令(一)
    weblogic找不到数据源
    windows 常用操作
    Spring in action (1)
    Eclipse使用
    maven
    Maven-01 安装maven
    Java开发环境搭建
  • 原文地址:https://www.cnblogs.com/rethink/p/1554690.html
Copyright © 2011-2022 走看看