目录
1、判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检查一次磁盘剩余空间。
2、判断web服务是否运行(1、查看进程的方式判断该程序是否运行,2、通过查看端口的方式判断该程序是否运行),如果没有运行,则启动该服务并配置防火墙规则。
3、使用curl命令访问第二题的web服务,看能否正常访问,如果能正常访问,则返回web server is running;如果不能正常访问,返回12状态码。
1、判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检查一次磁盘剩余空间。
【1】安装软件
[root@client ~]# dnf install -y s-nail
【2】进入配置文件设置管理员邮件
[root@client ~]# vim /etc/s-nail.rc
set from=1807317897@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=1807317897@qq.com
set smtp-auth-password=xxx # 邮箱授权码
set smtp-auth=login
【3】发送邮件,看看是否可以收到
[root@client ~]# echo "hello" | s-nail -s "title" 1807317897@qq.com
【4】分析:如何查看当前磁盘剩余空间
[root@client day4]# df -h | grep /$ | awk '{print $4}' | cut -dG -f1
【5】编写脚本ex1.sh
[root@client day4]# vim ex1.sh +
df_name=$(df -h | grep /$ | awk '{print $4}' | cut -dG -f1)
if [ $df_name -lt 20 ]
then
echo "df too low, ${df_name}G" | s-nail -s "warning" 1807317897@qq.com
fi
[root@client day4]# chmod +x ex1.sh
[root@client day4]# ./ex1.sh
运行结果,发送报警邮件
【6】编写计划任务
[root@client day4]# crontab -e
0 0 * * * sh /scripts/day4/ex1.sh &>/dev/null
2、判断web服务是否运行(1、查看进程的方式判断该程序是否运行,2、通过查看端口的方式判断该程序是否运行),如果没有运行,则启动该服务并配置防火墙规则。
【1】前期准备
[root@client html]# setenforce 0 # 关闭selinux
[root@client html]# systemctl stop firewalld.service # 关闭防火墙[root@client day4]# dnf install -y httpd # 安装服务
[root@client day4]# cd /var/www/html/
[root@client html]# echo "hello shell." > /var/www/html/web.html
[root@client html]# systemctl restart httpd
【1】查看进程的方式进行判断
[root@client day4]# vim ex2.sh +
total=$(ps -ef | grep httpd | grep -v grep | wc -l)
if [ $total -gt 0 ]
then
echo "runing"
else
systemctl stop firewalld
systemctl start httpd
fi
[root@client day4]# chmod +x ex2.sh
[root@client day4]# systemctl stop httpd
[root@client day4]# ./ex2.sh
[root@client day4]# ./ex2.sh
runing
【2】通过查看端口的方式进行判断
[root@client day4]# vim ex3.sh +
total=$(netstat -lnupt | grep 80 |wc -l)
if [ $total -gt 2 ]
then
echo "runing"
else
systemctl stop firewalld
systemctl start httpd
fi
[root@client day4]# chmod +x ex3.sh
[root@client day4]# systemctl stop httpd
[root@client day4]# ./ex3.sh
[root@client day4]# ./ex3.sh
runing
3、使用curl命令访问第二题的web服务,看能否正常访问,如果能正常访问,则返回web server is running;如果不能正常访问,返回12状态码。
[root@client day4]# vim ex4.sh +
if curl 192.168.111.20 &>/dev/null
then
echo "web server is running"
else
exit 12
fi
[root@client day4]# chmod +x ex4.sh
[root@client day4]# ./ex4.sh
web server is running
[root@client day4]# systemctl stop httpd
[root@client day4]# echo $?
12