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

相关推荐
见合八方24 分钟前
【噪声系数】高偏SOA噪声系数测试方法
网络·自动化·soa·光通信·激光雷达·半导体光放大器
FII工业富联科技服务28 分钟前
从灯塔工厂到AI Factory新模式:AI正在重构制造业的四大核心能力
大数据·运维·人工智能·重构·ar·制造
小五传输29 分钟前
自主可控建设指南:Serv-u替代方案,实现平滑迁移业务不中断
大数据·运维·安全
jun_bai34 分钟前
Orthanc服务器使用java上传dicom影像文件
java·运维·服务器
BullSmall41 分钟前
Anolis OS 8.10 Docker 部署 SonarQube 9.9 完整教程
运维·docker·容器
曦尧42 分钟前
Microsoft Ontology Playground:面向 Fabric IQ 的零后端本体可视化学习平台
ai·自动化
AAA@峥1 小时前
CentOS7 搭建 ELK 企业级日志集群:从部署到日志可视化完整实战
运维·elk·centos
ZKNOW甄知科技1 小时前
燕千云深度集成飞书:以AI之力,开启无感IT运维体验
大数据·运维·网络·数据库·人工智能·低代码·集成学习
叮咚侠1 小时前
docker安装的kibana+elasticsearch,突然kibana界面打不开了
运维·jenkins
nVisual1 小时前
数据中心机柜负载均衡与三相相位监控方案
运维·网络·负载均衡·数据中心布线·综合布线管理软件