编写SHELL脚本监控linux主机

怪狗 2016-7-29 HACK 0 0

1、  vi命令在/root目录是新建一个脚本文件sysmon.sh,内容如下:

编写SHELL脚本监控linux主机 

附:

a:使用df命令提取根分区的磁盘占用率:如下图所示:

使用df  -h命令查看磁盘分区的使用情况,其中根分区的已用空间10%

编写SHELL脚本监控linux主机 

用如下图中的命令可以过滤磁盘的已用空间

编写SHELL脚本监控linux主机 

b:使用mpstat命令提取CPU使用率(要确保sysstat软件包已安装)。如下图所示:其中%idle表示CPU空闲时间百分比

编写SHELL脚本监控linux主机 

 

用如下图中的命令可以得到CPU已用空间并赋值给变量CUG

编写SHELL脚本监控linux主机 

c:使用free命令查看内存的使用情况。其中划红线的表示空余内存。

编写SHELL脚本监控linux主机 

 

用如下图中的命令可以得到内存使用率并赋值给变量MUG

编写SHELL脚本监控linux主机 

2、使用chmod命令给sysmon.sh文件增加执行(x)权限

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

a:配置DNS服务负责解析邮件服务器的MXA记录

b:修改/etc/resolv.conf文件指向DNS服务器地址

c:配置邮件服务器

如果是postfix服务器,配置如下:

编写SHELL脚本监控linux主机 

修改main.cf文件,修改后内容如下:

编写SHELL脚本监控linux主机 

重启postfix服务。并发测试邮件

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

e:查收名为monitor@benet.com的邮箱,确认警告邮件内容

编写SHELL脚本监控linux主机 

邮件内容如下:

编写SHELL脚本监控linux主机 

4、设置crontab计划任务,每隔半小调用一次sysmon.sh脚本程序

编写SHELL脚本监控linux主机 

重新启动crond服务。

脚本2:编写SHELL脚本(mkbak.sh)提示用户指定备份目录的路径,若目录已存则显示提示信息后跳过,否则显示相应信息后创建该目录。

编写SHELL脚本监控linux主机 

 

脚本3:编写脚本程序(chkdbsvr.sh)用于每隔5分监视一次系统服务mysqld的运行状态,若发现mysqld进程已经停止,则在/var/log/messages文件中追加写入日志信息(包括当时时间),并重启mysqld服务;否则不进行任何操作

编写SHELL脚本监控linux主机 

 

脚本4:编写脚本程序用于监视系统服务httpd的运行状态,要求如下

当服务状态失常时在"/var/log/htmon.log"文件中记入日志信息。

自动将状态失常的httpd服务重新启动。若重启httpd服务失败,测尝试重新启动服务器主机

结合crond计划任务,每周一至周五每隔15分钟执行一次监测任务

1、  /opt目录中创建脚本htmon.sh,脚本内容如下

#! /bin/bash

/sbin/service httpd status &> /dev/null

if [ $? -ne 0 ] ; then

echo "httpd is down. at time: `date`" >> /var/log/htmon.log

  /sbin/service httpd restart

  /sbin/service httpd status &> /dev/null

if [ $? -ne 0 ] ; then

   /sbin/chkconfig --level 2345 httpd on

    /sbin/shutdown -r now

fi

fi

2、  创建crontab计划任务

*/15 * * * * /opt/htmon.sh

 

 

 

 

 

 

 

 

 

 

 

原文地址:https://www.77169.com/hack/201509/212706.shtm

转载请注明来自华盟网,本文标题:《编写SHELL脚本监控linux主机》

喜欢 (0) 发布评论