【Shell脚本自动化编写——报警邮件,检查磁盘,web服务检测】

发布于:2025-08-02 ⋅ 阅读:(15) ⋅ 点赞:(0)

Shell脚本自动化编写

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

第一步:准备工作

下载所需软件

[root@master ~]# yum install mailx -y &> /dev/null # "&> /dev/null" 不显示下载内容,丢到系统垃圾桶

第二步:配置邮件信息

1、配置邮件ssl证书

[root@master ~]# mkdir -p /root/.certs
[root@master ~]# cd  /root/.certs

[root@master .certs]# echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt

[root@master .certs]# certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt

[root@master .certs]# certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt

[root@master .certs]# certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt

2、获取授权码

# 进入qq邮箱网页版 --> 设置 --> 账号 --> 招到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务开启服务 --> 获取授权码

在这里插入图片描述

3、配置邮件服务

[root@master ~]# vim  /etc/mail.rc
# 最后一行添加以下内容:

set from=119****167@qq.com				# 填自己的qq邮箱
set smtp=smtps://smtp.qq.com:465         # ssl端口默认465
set smtp-auth-user=119****167@qq.com		# 填自己的qq邮箱
set smtp-auth-password=doc****qdubqbibj  # 授权码
set smtp-auth=login
set nss-config-dir=/root/.certs/     # 设置证书路径
set ssl-verify=ignore                # 启用加密ssl传输

# 注意:该文件输入完毕有的系统需要强制保存退出,输入wq!

4、测试邮件服务

[root@master .certs]# echo  "Hello Dyy" | mail -s "HXD" 119****167@qq.com

第三步:检查磁盘的自动化脚本

1、编辑检查磁盘的自动化脚本

[root@master ~]# vim disk.sh  # 创建检查磁盘容量脚本

#!/bin/bash
# 功能:磁盘剩余容量检查
disk=$(df -m | grep -w / | tr -s " " | cut -d " " -f4)
if (($disk<200000))
then            echo "Warning : disk space less than 20G" | mail -s "邮箱>警告!" 119*****67@qq.com
fi

在这里插入图片描述

2、检测

[root@master ~]# bash disk.sh

在这里插入图片描述

3、每天检查一次磁盘剩余空间

# 编辑时间任务器
[root@master ~]# vim /etc/crontab 

在这里插入图片描述

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

第一步:准备工作

1、编辑脚本文件

# 进入脚本文件
[root@master ~]# vim choice_server.sh 

在这里插入图片描述

2、测试

[root@master ~]# bash choice_server.sh

在这里插入图片描述

3、通过查看端口的方式判断该程序是否运行

[root@master ~]# netstat -lntup | grep 22 | grep tcp -w

在这里插入图片描述

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

1、编辑脚本文件

# 进入脚本文件
[root@master ~]# vim check_web.sh

在这里插入图片描述

2、测试

[root@master ~]# bash check_web.sh 
Web services running!

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到