linux Shell 监控3个小时内日志关键字,如果没有出现就报警
#!/bin/bash
cat /var/log/messages |grep "key word" > /dev/null
if [ $ -eq 1 ]
then
echo Alert!!!
fi
然后把这段话放到root的cronjob中
0 /3 /root/testsh
每3小时执行一次就可以了
我觉得你这个思路不好,按照你的想法,每增加一条,就需要运行一个往xxxx服务器上发送一次的sh,如果Alog同时写入100,200,300,1000条你想过是什么概念吗?除了浪费了系统资源,还占用了连接带宽。所以实时更新我觉得这个思路不好。我建议按天比如24小时,上传一次alog。了解下咯!
关注几个重点部分
第一load
第二CPU的使用率(当然这要是多核系统按数字键1,观察详细CPU使用)
第三mem:观察使用存在swap in/out
第四可以观察进程和线程对资源的使用情况
一般top命令只能观察一个大概结果需要结合其他的命令或者工具进行监控分析问题
比如系统自带的vmstat mpstat iostat netstat sar等
ps -fe|grep X
if [ $ -eq 0 ]
then
service restart X
fi
然后把这段脚本放到crontab里面,每分钟执行一次就可以了
想必你已经在chinaunix上找到答案了吧。
a=`stat -c %Y filename`;b=`date +%s`;if [ $[ $b - $a ] -gt 180 ];then command;else othercommand;fi就挺好的
但是你要注意在crontab中执行的时候需要加source一下环境变量,不然有些命令会找不到路径。
如:
0-59 /etc/profile;a=`stat -c %Y filename`;b=`date +%s`;if [ $[ $b - $a ] -gt 180 ];then command;else othercommand;fi
/etc/profile可以换成你用户目录下的配置文件
C shell的为 cshrc 在用户主目录下
bashell的为 bashrc 在用户主目录下
kshell的为profile 在用户主目录下
0条评论