《Linux自动化运维三例:磁盘告警、服务守护与网络检测》
1、判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检査一次磁盘剩余空间。
(1)首先找到磁盘剩余空间
[root@master ~]# df -m
文件系统 1M-块 已用 可用 已用% 挂载点
devtmpfs 4 0 4 0% /dev
tmpfs 1688 0 1688 0% /dev/shm
tmpfs 676 9 667 2% /run
tmpfs 4 0 4 0% /sys/fs/cgroup
/dev/mapper/openeuler-root 27039 2043 23598 8% /
tmpfs 1688 0 1688 0% /tmp
/dev/sda1 974 145 762 16% /boot
[root@master ~]# df -m | grep -w /
/dev/mapper/openeuler-root 27039 2043 23598 8% /
[root@master ~]# df -m | grep -w / | tr -s " "
/dev/mapper/openeuler-root 27039 2043 23598 8% /
[root@master ~]# df -m | grep -w / | tr -s " " | cut -d " " -f4
23598
#"grep -w /" 精准过滤,“tr -s " 缩小间隔为一个空格,“cut -d " " -f4” 取出以空格为分界的第四个数据
(2)实现邮件告警
配置邮件证书
[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
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
[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
Notice: Trust flag u is set automatically if the private key is present.
配置邮件服务
[root@master .certs]# vim /etc/mail.rc
在配置文件中的最后一行添加以下内容
(3)将时间同步
在阿里云镜像网站https://developer.aliyun.com/mirror/的NTP配置文件拷贝进去
[root@master ~]# vim /etc/chrony.conf
[root@master ~]# chronyc sources -v.-- Source mode '^' = server, '=' = peer, '#' = local clock./ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| / 'x' = may be in error, '~' = too variable, '?' = unusable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 203.107.6.88 2 6 177 32 -940us[-1247us] +/- 34ms
[root@master ~]# date
2025年 07月 31日 星期四 13:32:31 CST
(4)编写脚本
[root@master ~]# vim test1.sh
(6)编写系统计划任务
[root@master ~]# vim /etc/crontab
(7)测试
为了测试将小于20G给报警邮件发送给管理员改为了30G
2、判断web服务是否运行(1、查看进程的方式判断该程序是否运行,2、通过查看端口的方式判断该程序是否运行),如果没有运行,则启动该服务并配置防火墙规则。
编写脚本
[root@master ~]# vim test2.sh
运行脚本
3、使用curl命令访问第二题的web服务,看能否正常访问,如果能正常访问,则返回web serveris running;如果不能正常访问,返回12状态码。
编写脚本
运行脚本