1、判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检查一次磁盘剩余空间。
(1)查看盘剩余空间 df -h
(2)/分区的剩余空间 /boot分区
(3)总和是磁盘的总剩余空间
(4)判断是否大于20G
[root@localhost redhat]# mkdir day04
[root@localhost redhat]# cd day04
[root@localhost day04]# vim free.sh
[root@localhost day04]# chmod +x free.sh
[root@localhost day04]# ./free.sh
#!/bin/bash
a=`df | grep /dev/mapper/rhel-root | tr -s " " " " | cut -d " " -f 4`
b=`df | grep /dev/nvme0n1p1 | tr -s " " | cut -d " " -f 4`
sum=$[a+b]
sum1=$[sum/1024/1024]
echo $sum1
#[ $sum1 -lt 20 ] && echo "邮件警告!"
if [ $sum1 -lt 20];then
echo "内存空间不足" | mail -s "邮件警告!" @163.com
fi
每天检测一次:
配置邮箱客户端mailx
vim /etc/mail.rc
2、判断web服务是否运行(1、查看进程的方式判断该程序是否运行,2、通过查看端口的方式判断该程序是否运行),如果没有运行,则启动该服务并配置防火墙规则。
#查看是否运行
ps -aux | grep httpd
[使用该命令要再统计一下行数:ps -aux | grep httpd | wc -l 判断是否大于2]
netstat -tuanlp | grep 80
lsof -i:80
systemctl status httpd
systemctl is-active httpd
vim service_status.sh
#!/bin/bash
#判断服务状态 systemctl is-active httpd lsof -i:80
#active echo $?
read -p "请输入要测试的服务名称" service
stat=`systemctl is-active $service`
[ $stat == active ] || `systemctl restart $service`
#lsof -i:80 &> /dev/null
#if [ $? -ne 0 ] ;then
# `systemctl restart httpd`
#fi
chmod +x service_status.sh
./service_status.sh
3、使用curl命令访问第二题的web服务,看能否正常访问,如果能正常访问,则返回web server is running;如果不能正常访问,返回12状态码。
#!/bin/bash
curl http://localhost
if[ $? -eq 0 ];then
echo "web server is running"
else
echo "12"
exit 12
fi