开放系统监控shell脚本
开发系统监控脚本
1、需求描述? 2、思路与命令测试 使用用df命令提取出根分区的磁盘占用率 使用mpstat命令提取CPU使用率,先安装需安装sysstat软件包 [[email?protected] opt]# yum -y install sysstat [[email?protected] opt]# id=$(mpstat |grep all |awk ‘{print $12}‘ |awk -F"." ‘{print $1}‘) 使用free命令提取出内存使用率, [[email?protected] ~]# total=$( free -m |grep Mem |awk ‘{print $2}‘ ) [[email?protected] ~]# echo $total ###捞取总内存 976 [[email?protected] ~]# used=$( free -m |grep Mem |awk ‘{print $3}‘ ) [[email?protected] ~]# echo $used ###捞取使用的内存。 589 [[email?protected] ~]# mug= expr $used * 100 / $total ### 这里我们要用到运算,使用的除以总的,但是直接除是小数,我们需要的是百分比,在则expr只能算整数运算,所以的先乘以100,得到的数值也是整数部分[[email?protected] ~]# echo $mug 60 编辑脚本信息编写名为sysmon.sh的Shell监控脚本
生成告警文件,配置如下 [ $DUG -ge 90 ] && echo "根分区内存使用率超标达到:$DUG %" >> /tmp/warrin.txt ###当根分区内存使用率大于 90 %,输出报警信息,并定向保存到/tmp/warrin.txt警告文件中 [ $CUG -ge 80 ] && echo "cpu使用率超标达到: $CUG %" >> /tmp/warrin.txt ###当cpu使用率大于 80 %,输出报警信息,并定向保存到/tmp/warrin.txt警告文件中 [ $MUG -ge 90 ] && echo "内存使用率超标达到: $MUG %" >> /tmp/warrin.txt ###当内存使用率大于 90 %,输出报警信息,并定向保存到/tmp/warrin.txt警告文件中 当有告警文件产生时,就发送邮件, [ -f /tmp/warrin.txt ] && cat /tmp/warrin.txt | mail -s "警告"$amail && rm -rf /tmp/warrin.txt 整篇配置如下 ###设置邮箱服务,添加第三方服务器发送邮件。 [[email?protected] opt]# systemctl restart postfix.service? #重启服务 测试,修改参数,生成告警文件,并检验邮箱是否发送。 运行程序 改回参数,编辑计划任务文件 crontab –e 添加计划任务,在里面添加该配置文件 [[email?protected] opt]# systemctl start crond.service ###开启计划任务 查看计划任务状态 每隔一分钟会收到一封邮件 表示计划任务也设置成功了。 在将其改回30,就可以了 再发送邮件时,出现的一些问题及解决办法: 如果遇到,503错误,smtp-server: 535 Error · · 连接超时 ,防火墙和核心防护没关。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |