用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发生,就可以及时收到邮件提醒了。
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:rethink 来源: 博客园-rethink log
- 标签:
- 发布时间:2009-10-16 12:10:33
-
[928] WordPress插件开发 -- 在插件使用 -
[134] 解决 nginx 反向代理网页首尾出现神秘字 -
[52] 整理了一份招PHP高级工程师的面试题 -
[52] 如何保证一个程序在单台服务器上只有唯一实例( -
[51] 用 Jquery 模拟 select -
[50] 海量小文件存储 -
[50] Innodb分表太多或者表分区太多,会导致内 -
[50] 全站换域名时利用nginx和javascri -
[49] CloudSMS:免费匿名的云短信 -
[47] jQuery性能优化指南