`
#rethink#
  • 浏览: 47492 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

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

 

分享到:
评论

相关推荐

    linux shell监控应用程序日志报错

    在这个场景中,我们关注的是如何利用shell脚本来监控应用程序日志,特别是针对日志中的错误信息进行实时检测。`checkwarning.cfg`和`checkref.cfg`可能包含的是监控规则和配置信息,而`checkwarning.sh`和`checkref....

    shell-编写监控平台

    本文详细介绍了如何使用 Shell 脚本构建一个简易但实用的服务器监控平台。通过合理规划目录结构、精心设计每个脚本的功能以及利用配置文件进行灵活配置,可以有效地提高系统的稳定性和可靠性。此外,通过邮件告警...

    用shell写守护进程

    ### 用Shell编写守护进程详解 #### 知识点概览 1. **守护进程(Daemon)的概念** 2. **Shell脚本基础** 3. **Shell脚本中的进程管理** 4. **守护进程的设计与实现** 5. **错误处理与日志记录** #### 守护进程概念 ...

    linux系统java服务自启动shell脚本及服务cpu内存占用监控脚本

    一个简单的监控脚本可能如下: ```bash #!/bin/bash while true; do PID=$(pgrep -f "myapp.jar") if [ -z "$PID" ]; then echo "Service is not running!" else CPU_USAGE=$(ps -p $PID -o %cpu=) MEM_...

    监控Oracle数据库的常用shell脚本

    ### 监控Oracle数据库的常用Shell脚本 #### 一、脚本来监控Oracle数据库: ##### 1. 检查实例的可用性 检查Oracle实例是否正常运行是日常监控的重要部分。通过`ps -ef | grep smon`命令可以查看当前系统上运行的...

    Shell执行/调用Java/Jar程序例子

    这篇博客“Shell执行/调用Java/Jar程序例子”探讨了如何使用Shell脚本来启动和控制Java应用程序,特别是JAR文件。这里我们将深入讲解相关知识点。 1. **Shell脚本基础** Shell脚本是Linux或Unix操作系统中的命令行...

    shell 常用脚本收集

    本文收集了一些常用的 Shell 脚本,涵盖了批量删除已安装程序、重启服务程序、日志切割、资源同步和错误监控等多个方面。这些脚本可以帮助开发者和运维人员快速解决一些常见的问题,提高工作效率。 批量删除已安装...

    [shell编程]Linux环境下通用文本型日志的监控和收集

    比起那些Java写的监控程序,shell脚本算是绿色环保了。当然修改部分参数后,程序也能成为通用版。 本程序的目的是:监控Linux系统中指定文件或文件下文本文件,如果文件有变动,则将新增行以syslog方式发送到目标...

    vc全局钩子实现程序监控

    通过上述方法,我们可以实现一个简单但功能强大的程序监控工具。这种工具不仅可以帮助用户了解自己的计算机活动,还能有效防止未经授权的程序自动运行,提高系统的安全性。当然,实际应用中可能还需要进一步完善错误...

    unix shell程序集锦

    Shell脚本是用Shell语言编写的程序,可以自动化一系列任务,提高工作效率。以下是从给定文件中提取的一些常用Unix Shell编程技巧和示例: 1. **查找大文件并统计数量**: ```bash find ./ -size +500M -type f | ...

    发现服务不打日志进行重启shell脚本.txt

    本文将详细介绍一个用于监控服务日志,并在发现服务超过一个小时没有更新日志时自动重启服务的Shell脚本。 #### 核心知识点 ##### 1. **Shell脚本基础** - **基本结构**:Shell脚本是一种文本文件,其中包含了一...

    log4j-2.18.0

    这个漏洞,通常被称为“Log4Shell”,因其潜在的危害性被业界高度重视,可能允许攻击者远程执行任意代码,从而对网络系统造成极大的破坏。 首先,我们需要理解什么是log4j。Log4j是Apache软件基金会的一个开源项目...

    log4j-2.17.1的jar包,导入即可使用

    3. **导入使用**:在Java项目中使用Log4j非常简单,只需要将`log4j-2.17.1.jar`文件添加到项目的类路径(Classpath)中。对于Maven或Gradle项目,可以在依赖管理中添加相应的依赖条目。 4. **配置文件**:Log4j 的...

    用于LOG处理的Rocket-fastSYStem_C_Shell_下载.zip

    这个压缩包“用于LOG处理的Rocket-fastSystem_C_Shell_下载.zip”包含了核心组件rsyslog-master,这是一个广泛使用的系统日志记录和转发软件。 **rsyslog介绍** rsyslog是一个开源、跨平台的日志系统,支持多种操作...

    Android LOG日志抓取工具

    "Android LOG日志抓取工具"就是为了解决这个问题而设计的,它能够帮助开发者更有效地捕获和分析应用程序中的异常日志。下面我们将深入探讨这个工具的工作原理、使用方法以及其在实际开发中的价值。 1. **日志系统...

    log指令使用方法说明参考手顺

    根据提供的文件信息,本文将详细解释“log指令使用方法说明参考手顺”这...综上所述,“log指令使用方法说明参考手顺”旨在为读者提供一个全面而深入的理解Shell环境下日志记录的相关知识和技术,希望对大家有所帮助。

    SHELL高级编程

    这一章节通过示例展示了如何创建和运行一个简单的SHELL脚本,如清空`/var/log`目录下的日志文件。这种脚本的编写不仅简化了常规操作,还便于批量执行和定期调度,极大地提高了工作效率。 #### 结论:SHELL脚本的...

    SHELL脚本监控JAVA进程的代码

    脚本内容:java_check.sh #!... 33[0m” &gt;&gt; /data/logs/java_check.log /usr/local/tomcat/bin/startup.sh &gt;/dev/null 2&gt;&1 sleep 30 netstat -tnlp &gt;&gt; /data/logs/java_check.log echo -e “r

    linux系统Tomcat重启shell脚本

    Linux 系统 Tomcat 重启脚本判断日志超过一定大小自动重启,是指在 Linux 操作系统中使用 shell 脚本来监控 Tomcat 服务器的日志文件大小,当日志文件超过一定大小时,自动重启 Tomcat 服务器,以确保服务的稳定运行...

    这是一个log4j的压缩包,直接可以用的。。。

    这个压缩包“logging-log4j-1.2.9”包含了Log4j的1.2.9版本,这是一个相对较为早期但仍然广泛使用的版本。在本文中,我们将深入探讨Log4j的核心特性、配置、使用方法以及它在实际开发中的重要性。 1. **Log4j的基本...

Global site tag (gtag.js) - Google Analytics