磁盘监控 + Web 服务巡检自动化脚本实训任务

一,实践任务内容

1、判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检查一次磁盘剩余空间。

2、判断web服务是否运行(1、查看进程的方式判断该程序是否运行,2、通过查看端口的方式判断该程序是否运行),如果没有运行,则启动该服务并配置防火墙规则。

3、使用curl命令访问第二题的web服务,看能否正常访问,如果能正常访问,则返回web serveris running;如果不能正常访问,返回12状态码。

二,分析实践内容

考察核心知识点

  1. Linux 磁盘容量查看命令 df、数值单位换算(1G=1024M)、awk 截取磁盘剩余容量
  2. Shell 数值大小对比判断逻辑
  3. Linux 邮件发送工具(mailx/postfix)配置与发信调用
  4. 定时任务 crontab 计划任务配置(实现每天自动巡检
  5. 两种进程检测手段:
    • 进程检测:ps aux | grep 服务名 过滤进程 PID
    • 端口检测:ss -lntp / netstat -lntp 监听端口匹配
  6. systemd 服务管理:systemctl start/enable 启停开机自启
  7. firewalld 防火墙端口放行规则配置、永久生效重载
  8. 多条件分支 Shell 判断语法
  9. curl 工具访问、状态码 / 访问结果捕获
  10. Shell 自定义退出状态码(脚本 exit 返回值)
  11. 承接第二题 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 两套脚本配合定时任务完成自动化巡检。

相关推荐
闪亮的路灯20 小时前
Linux 安装mqtt服务mosquitto
linux·运维·服务器
海宇服务1 天前
零信任架构实战:基于海宇全能小微企业报告构建自动化园区商户免押租赁资信核验网关
大数据·人工智能·架构·自动化
szxinmai主板定制专家1 天前
X86 工控机 vs RK3588 异构主控:AMR 控制器 BOM、散热、长期运维对比
运维·stm32·单片机·嵌入式硬件·fpga开发·am62x
叼烟扛炮1 天前
Linux 学习笔记(四十一):TCP 并发演进——从单进程到多线程服务器
linux·运维·服务器·网络·笔记·学习·tcp/ip
画中有画1 天前
在自动化脚本中操作本地数据库
数据库·oracle·自动化
Decay__1 天前
09_MySQL 闪回与时间点恢复 —— binlog 回放、mysqlbinlog、PITR 与误删恢复
运维·数据库·sql·mysql·架构
久曲健的测试窝1 天前
2026软件测试工具选型指南:双模式如何化解UI脚本维护难题
运维·人工智能·科技·aigc
代码方舟1 天前
零信任架构实战:基于天远企业法人四要素高级版构建自动化电子印章授权与签约准入网关
人工智能·架构·自动化·区块链
NailiConveyor1 天前
柔性物流方案如何适配工厂升级?自动化输送流水线定制要点
大数据·运维·自动化·制造·业界资讯
Lsetea1 天前
Certbot webroot申请SSL证书总是404:Nginx挑战目录与路径映射检查
运维·nginx·https·ssl证书·certbot