【Shell脚本自动化编写——报警邮件,检查磁盘,web服务检测】
Shell脚本自动化编写
- Shell脚本自动化编写
- 一、判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检查一次磁盘剩余空间。
- 第一步:准备工作
- 第二步:配置邮件信息
- 第三步:检查磁盘的自动化脚本
- 二、判断web服务是否运行(1、查看进程的方式判断该程序是否运行,2、通过查看端口的方式判断该程序是否运行),如果没有运行,则启动该服务并配置防火墙规则。
- 第一步:准备工作
- 三、使用curl命令访问第二题的web服务,看能否正常访问,如果能正常访问,则返回web services running;如果不能正常访问,返回12状态码。
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!