shell 监控日志变化
问题背景
系统运维工作中经常需要手动的确认一下系统是否正常运行,通常就是监控一下日志是否输出。
问题解决
服务器很多,频繁的进入日志目录很不方便
考虑使用linux 的软连接:
ln -s /app/tomcat/log/catalina.out /app/log
这样只需要
tail -f /app/log
问题进阶-1
上边的方案确实节省了一些时间,但是还不够,考虑是使用监控日志的变化,判断应用是否出现了假死
- 使用命令watch
-d, --differences[=cumulative] 高亮显示变动
-n, --interval= 周期(秒)
-t 或-no-title 会关闭watch命令在顶部的时间间隔
Example : watch -n 1 -d netstat -ant
具体事例
#watch uptime
#watch -t -d uptime
#watch -d -n 1 netstat -ntlp
#watch -d ’ls -l | fgrep goface’ //监测goface的文件
#watch -t -differences=cumulative uptime
#watch -n 60 from //监控mail
#watch -n 1 ”df -i;df” //监测磁盘inode和block数目变化情况
#watch -n 60 -d du -ah //查看usb3.0拷贝到该目录下面的速度
我们可以使用这个有趣命令观察日志文件是否变化:
watch -n 1 -d -t 'ls -l catalina.out'
日志文件的大小会高亮显示变化,说明系统在正常运行(当然这里只是一种假设,并不考虑异常输出的问题,主要是介绍这个命令)
如果系统中存在多个tomcat,我们可以在同时监控多个命令
watch -n 1 -d -t 'ls -l /tomcat/tomcat01/log/catalina.out;ls -l /tomcat/tomcat02/log/catalina.out'
网友评论