一,实践任务内容
1、判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检查一次磁盘剩余空间。
2、判断web服务是否运行(1、查看进程的方式判断该程序是否运行,2、通过查看端口的方式判断该程序是否运行),如果没有运行,则启动该服务并配置防火墙规则。
3、使用curl命令访问第二题的web服务,看能否正常访问,如果能正常访问,则返回web serveris running;如果不能正常访问,返回12状态码。
二,分析实践内容
考察核心知识点
- Linux 磁盘容量查看命令
df、数值单位换算(1G=1024M)、awk 截取磁盘剩余容量 - Shell 数值大小对比判断逻辑
- Linux 邮件发送工具(mailx/postfix)配置与发信调用
- 定时任务
crontab计划任务配置(实现每天自动巡检 - 两种进程检测手段:
- 进程检测:
ps aux | grep 服务名过滤进程 PID - 端口检测:
ss -lntp/netstat -lntp监听端口匹配
- 进程检测:
- systemd 服务管理:
systemctl start/enable启停开机自启 - firewalld 防火墙端口放行规则配置、永久生效重载
- 多条件分支 Shell 判断语法
- curl 工具访问、状态码 / 访问结果捕获
- Shell 自定义退出状态码(脚本 exit 返回值)
- 承接第二题 Web 服务,形成「检测→启动→连通校验」完整链路
三,任务进行中
3.1磁盘监控
3.1.1 判断当前磁盘剩余空间是否有20G
[root@zhangjiajie ~]# df -m / #检查文件系统根目录的情况(磁盘剩余量单位为兆)
文件系统 1M-块 已用 可用 已用% 挂载点
/dev/mapper/openeuler-root 29034 2119 25417 8% /
[root@zhangjiajie ~]#
[root@zhangjiajie ~]#
[root@zhangjiajie ~]# df -m / | grep /
/dev/mapper/openeuler-root 29034 2119 25417 8% /
[root@zhangjiajie ~]# df -m / | grep / | tr -s " "
/dev/mapper/openeuler-root 29034 2119 25417 8% /
[root@zhangjiajie ~]# df -m / | grep / | tr -s " " | cut -d " " -f4
25417
[root@zhangjiajie ~]# vim disk.sh
3.1.2如果小于20G(20000MB),则将报警邮件发送给管理员
1> 设置qq邮箱





发完之后点击我已发送,随后会生成出来一个授权码

2>安装邮件服务
[root@zhangjiajie ~]# yum install mailx -y
3>配置邮件服务内容(要求制作证书,加密服务)
[root@zhangjiajie ~]# mkdir -p /root/.certs
[root@zhangjiajie ~]# cd /root/.certs/
[root@zhangjiajie .certs]# echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt #不用理解,官方给的
depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root G2
verify return:1
depth=1 C = US, O = "DigiCert, Inc.", CN = DigiCert Secure Site OV G2 TLS CN RSA4096 SHA256 2022 CA1
verify return:1
depth=0 C = CN, ST = Guangdong Province, L = Shenzhen, O = Shenzhen Tencent Computer Systems Company Limited, CN = *.mail.qq.com
verify return:1
DONE #敲完第一句,一定要出现DONE这个词才可以开始下一句
[root@zhangjiajie .certs]# certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt #不用理解,官方给的
[root@zhangjiajie .certs]# certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt #不用理解,官方给的
[root@zhangjiajie .certs]# certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt #不用理解,官方给的
Notice: Trust flag u is set automatically if the private key is present.
[root@zhangjiajie .certs]#vim /etc/mail.rc
进去后找个空白地方一字一句敲下一下的7句话 
[root@zhangjiajie ~]# echo "测试邮件" | mail -s "第一封邮件" xxxxxxxxx@qq.com
#自己的邮箱地址

3>每天检查一次(没说时间,随便编一个时间)
[root@zhangjiajie ~]# crontab -e
* * * * * 分时日月周

3.2Web服务自动化运行
3.2.1可否正常运行
两种方法:
1>查看进程的方式判断该程序是否运行
未启动的nginx

启动的nginx

2>通过查看端口的方式判断该程序是否正常运行

3.2.2如果没有运行,则启动该服务并配置防火墙规则
此时防火墙关闭的

放开防火墙


[root@zhangjiajie ~]# systemctl stop nginx
[root@zhangjiajie ~]# bash web1.sh
nginx服务未启动,正在尝试启动......
nginx服务已经启动,防火墙已经放行

四,总结任务
整体包含三项运维监控任务:一是每日定时检测服务器磁盘剩余空间,若可用空间不足 20G 则向管理员推送告警邮件;二是通过进程查询、端口监听两种方式双重校验 Web 服务运行状态,服务未启动时自动拉起服务并配置防火墙放行 80 端口规则;三是借助 curl 访问本地 Web 服务,访问正常则输出web server is running,访问异常时脚本返回 12 状态码,可拆分磁盘、Web 两套脚本配合定时任务完成自动化巡检。
