使用shell脚本监控主机

实验环境:

某公司随着业务的不断发展,所使用的linux服务器也越来越多,管理员希望编写一个简单的性能监控脚本,放到各服务器中,当监控指标出现异常时发送告警邮件。

拓扑:

需求描述:

? 编写名为sysmon.sh的shell监控脚本

? 监控内容包括CPU使用率、内存使用率、根分区的磁盘占用率

? 百分比只需要精确到个位,如7%、12%、23%等

? 出现以下任一情况时告警:磁盘占用率超过90%、CPU使用率超过80%、内存使用率超过90%

? 告警邮件通过mail命令发送到[email protected]

? 结合crond服务,每半小时执行一次监控脚本

实验步骤

1. 编写sysmon.sh脚本

1)使用df命令提取出根分区的磁盘占用率,赋值给变量DUG

2)使用mpstat命令提取CPU使用率(需安装sysstat软件包),赋值给变量CUG

3)使用free命令提取出内存使用率,赋值给变量MUG

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

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

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

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

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

5)判断/tmp/alert.txt文件是否存在,若存在则作为告警邮件发送

2. 测试sysmon.sh脚本的执行情况

1)确认有可用的邮件服务器,然后调低监控阈值,执行sysmon.sh脚本进行测试

2)查收名为[email protected]的邮箱,确认告警邮件内容

3. 设置crontab计划任务

1)确认系统服务crond已经运行

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

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

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

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

总结:

1. 使用[ ]或test命令可以执行条件测试操作,包括字符串和整数的比较,逻辑测试和文件测试等

2. 整数比较操作符包括:-gt(大于)、-ge(大于等于)、-eq(等于)、-lt(小于)、-le(小于等于)、-ne(不等于)

3. 常用的字符串比较操作符包括:=(相同)、!=(不同)、-z(为空)

4. 逻辑测试操作符包括:&&(与)、||(或)、!(非)

5. 执行命令或程序后会返回一个状态值,若返回值为0,表示执行成功,若不为0,则表示执行失败或出现异常

6. 通过使用if语句,可以根据条件有选择地执行不同操作,选择类型包括单分支、双分支、多分支

转载于:https://blog.51cto.com/liuqicheng/1874362

分类:

技术点:

相关文章: