一、判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检查1次磁盘剩余空间。
1.安装邮件服务
[root@node1 ~]# yum install s-nail -y
2.配置邮件服务
[root@node1 ~]# vim /etc/s-nail.rc
末尾添加以下内容:
set from=1298303527@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=1298303527@qq.com
set smtp-auth-password=rbrf***mahegafh
set smtp-auth=login
3.新建脚本文件diskwarn.sh
[root@node1 ~]# vim diskwarn.sh
输入以下脚本内容 :
#!/bin/bash
disk=$(df -m | grep -w / | tr -s " " | cut -d " " -f4)
if (($disk<20480))
then
echo "磁盘容量小于20GB,请注意!" | mail -s "磁盘容量警告" 1298303527@qq.com
fi
4.添加系统级别的计划任务
[root@node1 ~]# vim /etc/crontab
添加计划任务
0 18 * * * root /usr/bin/bash /root/diskwarn.sh
二、判断web服务是否运行 (方法1:查看进程的方式判断该程序是否运行;方法2:通过查看端口的方式判断该程序是否运行),如果没有运行,则启动该服务并配置防火墙规则。
1.新建脚本文件Web_sta.sh
[root@node1 ~]# vim Web_sta.sh
输入以下脚本内容:
#!/bin/bash
ps=`ps -ef | grep httpd | grep -v grep | wc -l`
if (($ps>0))
then
echo "httpd is already running"
else
echo "httpd not started,wating......"
yum install httpd -y > /dev/null
systemctl start httpd
systemctl start firewalld
firewall-cmd --permanent --zone=public --add-service=http > /dev/null
firewall-cmd --permanent --zone=public --add-port=80/tcp > /dev/null
firewall-cmd --reload > /dev/null
echo "httpd is already running"
fi
2.执行脚本Web_sta.sh进行测试
[root@node1 ~]# sh Web_sta.sh
httpd is already running
[root@node1 ~]# systemctl stop httpd
[root@node1 ~]# sh Web_sta.sh
httpd not started,wating......
httpd is already running
三、使用curl命令访问第二题的web服务,看能否正常访问,如果能正常访问,则返回web server is running;如果不能正常访问,则返回12状态码。
1.新建脚本文件curl.sh
[root@node1 ~]# vim curl.sh
输入以下脚本内容:
#!/bin/bash
ip_add=`ip a | grep ens160 |grep inet | tr -s " " | cut -d " " -f3`
ip=${ip_add%/*}
curl -s $ip > /dev/null
if (($?==0))
then
echo "Web server is running."
else
echo "Web not accessible."
exit 12
fi
2.执行脚本Web_sta.sh进行测试
[root@node1 ~]# bash curl.sh
Web not accessible.
[root@node1 ~]# systemctl restart httpd
[root@node1 ~]# bash curl.sh
Web server is running.