磁盘监控 + 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 两套脚本配合定时任务完成自动化巡检。

相关推荐
折哥的程序人生 · 物流技术专研1 小时前
Tomcat 严重警告:JDBC 驱动未注销 + 工作线程泄漏 —— 原因、影响与彻底修复(生产级终极指南)
java·运维·数据库·mysql·oracle·tomcat
Techblog of HaoWANG1 小时前
智巡守卫:多模态巡检智能体算法服务端设计与实现——基于Ollama+Qwen3.5的自动化巡检报告生成系统
运维·人工智能·算法·目标检测·自动化·边缘计算
hweiyu001 小时前
Linux命令:newgrp
linux·运维·服务器
Full Stack Developme1 小时前
计算机加密与解密的历史
运维·服务器·网络·云计算
有什么事1 小时前
AI革命:云手机从脚本到智能体的跨越
人工智能·智能手机·自动化
MXsoft6181 小时前
**分组管理:按机房、业务、部门灵活建组,支持跨组归属**
自动化
Mr -老鬼1 小时前
EasyClick 入门指南:HTTP 网络请求与 API 对接实战
网络·网络协议·http·自动化·#easyclick
tedcloud1231 小时前
Supermemory部署教程:打造Agent记忆与RAG环境
服务器·人工智能·学习·自动化·powerpoint
工业机器人销售服务2 小时前
伯朗特冷轧钢板自动上下料,无痕平稳取放,适配精密钣金加工产线
机器人·自动化