您的位置:首页 > 运维架构 > Shell

刘启成_使用shell脚本监控主机

2016-11-18 16:33 483 查看
使用shell脚本监控主机
实验环境:
某公司随着业务的不断发展,所使用的linux服务器也越来越多,管理员希望编写一个简单的性能监控脚本,放到各服务器中,当监控指标出现异常时发送告警邮件。
拓扑:
需求描述:
? 编写名为sysmon.sh的shell监控脚本
? 监控内容包括CPU使用率、内存使用率、根分区的磁盘占用率
? 百分比只需要精确到个位,如7%、12%、23%等
? 出现以下任一情况时告警:磁盘占用率超过90%、CPU使用率超过80%、内存使用率超过90%
? 告警邮件通过mail命令发送到monitor@benet.com
? 结合crond服务,每半小时执行一次监控脚本
实验步骤
1. 编写sysmon.sh脚本
1)使用df命令提取出根分区的磁盘占用率,赋值给变量DUG
2)使用mpstat命令提取CPU使用率(需安装sysstat软件包),赋值给变量CUG
3)使用free命令提取出内存使用率,赋值给变量MUG






4)判断上述监控项目是否超标,将需要告警的信息保存到/tmp/alert.txt文件






5)判断/tmp/alert.txt文件是否存在,若存在则作为告警邮件发送
2. 测试sysmon.sh脚本的执行情况
1)确认有可用的邮件服务器,然后调低监控阈值,执行sysmon.sh脚本进行测试
2)查收名为monitor@benet.com的邮箱,确认告警邮件内容
3. 设置crontab计划任务
1)确认系统服务crond已经运行



2)添加crontab计划任务配置,每半小时执行一次sysmon.sh脚本程序






总结:
1. 使用[ ]或test命令可以执行条件测试操作,包括字符串和整数的比较,逻辑测试和文件测试等
2. 整数比较操作符包括:-gt(大于)、-ge(大于等于)、-eq(等于)、-lt(小于)、-le(小于等于)、-ne(不等于)
3. 常用的字符串比较操作符包括:=(相同)、!=(不同)、-z(为空)
4. 逻辑测试操作符包括:&&(与)、||(或)、!(非)
5. 执行命令或程序后会返回一个状态值,若返回值为0,表示执行成功,若不为0,则表示执行失败或出现异常
6. 通过使用if语句,可以根据条件有选择地执行不同操作,选择类型包括单分支、双分支、多分支
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息