用shell写个简单的log监控程序
2009-07-31 16:38
295 查看
检查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发生,就可以及时收到邮件提醒了。
但是不明显的错误不表示没有错误,潜在的问题往往是最严重的问题。因此写个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发生,就可以及时收到邮件提醒了。
相关文章推荐
- 用shell写个简单的log监控程序
- shell实现简单的进程监控脚本
- 利用java实现一个简单的远程监控程序
- 编辑简单的 shell程序
- 最简单的makefile和最简单的shell程序
- 简单监控程序
- shell 多个程序 log 的备份(二)
- shell脚本写一个应用监控程序、让程序死而复生
- UNIX系统性能监控简述及shell实现系统资源利用率统计程序
- 最简单的shell程序——yash
- Shell 脚本如何监控程序占用带宽
- 用 OpenCV 编写一个简单的摄像头视频监控程序
- zabbix通过简单shell命令监控elasticsearch集群状态
- 写了一个简单的shell脚本监控mysql服务器运行状态
- 一个简单的模拟shell的程序
- shell 写的响应时间监控程序
- shell 简单服务监控
- 自己动手写一个简单的Windows shell扩展程序
- 简单监控网站访问是否正常的shell脚本,邮件报警。网站恢复后继续运行。
- 简单的程序日志打印函数WriteLog,适用于vc等,含宽字符。