小柏实战学习Liunx(图文教程二十七)
本节课主题:监控服务器硬盘使用率,超过阈值,邮件通知,并转移大文件到其他服务器上.
前言:一定要知道每一个命令是啥意思,并且要学会看报错信息,学会使用AI。
一: 监控CentOS服务器硬盘使用率在超过75%时发送邮件通知
-
安装并配置Sendmail邮件服务:确保您的CentOS服务器上已经安装了Sendmail邮件服务。如果没有安装,可以使用以下命令进行安装:
sudo yum install sendmail sendmail-cf -y
2.安装完成后,编辑Sendmail的配置文件/etc/mail/sendmail.mc
,以确保网络访问权限正确设置.
将DAEMON_OPTIONS(
Port=smtp,Addr=127.0.0.1, Name=MTA')dnl行中的
127.0.0.1改为
0.0.0.0`,以便任何主机都可以访问Sendmail服务。
3.生成Sendmail配置文件:完成配置文件编辑后,运行以下命令生成Sendmail配置文件:(这将生成一个新的sendmail.mc
文件,用于配置Sendmail服务。)
sudo make -C /etc/mail/
4.设置邮件通知:使用以下命令编辑Sendmail配置文件:
sudo vi /etc/mail/sendmail.mc
在配置文件中找到以下行:
dnl DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
确保该行没有被注释掉(即没有以dnl
开头),并确保其正确设置了SMTP端口和服务器名称。
5. 创建脚本监控硬盘使用率:使用以下命令创建一个脚本,用于监控硬盘使用率并在超过75%时发送邮件通知:
sudo vi /usr/local/bin/disk_usage_alert.sh
在脚本中添加以下内容:(确保将example@example.com
替换为您要接收通知的邮箱地址。保存并关闭脚本文件。)
#!/bin/bash # 定义阈值(以百分比表示) threshold=75 # 获取当前磁盘使用率(以百分比表示) disk_usage=$(df -h | awk '$NF=="/"{print substr($5,1,length($5)-1)}') # 检查磁盘使用率是否超过阈值 if [ $disk_usage -gt $threshold ]; then # 发送邮件通知指定邮箱(将example@example.com替换为您要接收通知的邮箱地址) echo "警告:磁盘使用率已超过阈值!" | mail -s "磁盘使用率警告" shaun@shaun66.onmicrosoft.com fi
6. 运行脚本:为脚本文件添加执行权限,并使用以下命令运行脚本:
sudo chmod +x /usr/local/bin/disk_usage_alert.sh sudo crontab -e
在打开的编辑器中,添加以下行以定时执行脚本:(每周日晚上10点执行一次)
0 22 * * sun /usr/local/bin/disk_usage_alert.sh > /dev/null 2>&1
每分钟一次:
* * * * * /usr/local/bin/disk_usage_alert.sh > /dev/null 2>&1
保存并关闭编辑器。这将使脚本每分钟运行一次,检查磁盘使用率是否超过阈值,并在超过阈值时发送邮件通知。
二:内网服务器之间,大文件或者目录相互转移(根据提示输入密码即可)
scp <源服务器用户名>@<源服务器IP地址>:<源文件路径> <目标服务器用户名>@<目标服务器IP地址>:<目标文件路径>
1.文件转移举例:
scp root@192.168.0.1:/data/tomcat/apache-tomcat-9.0.58-core/logs/catalina.out root@192.168.0.2:/data/logs
2.目录转移举例:
scp root@192.168.0.1:/data/tomcat/apache-tomcat-9.0.58-manager/logs/* root@192.168.0.2:/data/logs
三:补充:sendEmail使用指定邮箱发送给多个收件人
1.下载安装sendEmail:
#下载安装包 wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz #解压 tar zxf sendEmail-v1.56.tar.gz -C /usr/src/ #进入解压目录 cd /usr/src/sendEmail-v1.56/ #复制程序到指定目录 cp -a sendEmail /usr/local/bin/
2.创建脚本监控硬盘使用率:使用以下命令创建一个脚本"warning-by-shaun.sh",用于监控硬盘使用率并在超过5%时发送邮件通知:
sudo vi /usr/local/bin/warning-by-shaun.sh
在脚本中添加以下内容:
#!/bin/bash # 定义阈值(以百分比表示) threshold=5
#收件人
mail_receive="demo1@onmicrosoft.com,demo2@88.com,demo3@111.com"
# 获取当前磁盘使用率(以百分比表示) disk_usage=$(df -h | awk '$NF=="/"{print substr($5,1,length($5)-1)}') # 检查磁盘使用率是否超过阈值 if [ $disk_usage -gt $threshold ]; then # 发送邮件通知指定邮箱 /usr/local/bin/sendEmail -o message-charset=utf8 -f demo@88.com -t ${mail_receive} -s smtp.88.com -u "磁盘使用率警告" -xu demo@88.com -xp 发件人邮箱授权密码 -m "警告:磁盘使用率已超过阈值!当前使用率为 $disk_usage%" >> /usr/local/bin/output.log 2>&1 fi
3.运行脚本:为脚本文件添加执行权限,并使用以下命令运行脚本:
sudo chmod +x /usr/local/bin/warning-by-shaun.sh sudo crontab -e
在打开的编辑器中,添加以下行以定时执行脚本:每分钟一次:
* * * * * /usr/local/bin/warning-by-shaun.sh > /dev/null 2>&1
tips:
-f demo@139.com 发件人邮箱
-t test@139.com 收件人邮箱
-s xx.xx.xx.xx 发件人邮箱的smtp服务器
-u "邮件主题" 邮件的标题
-o message-content-type=html 邮件内容的格式,html表示它是html格式
-o message-charset=utf8 邮件内容编码为utf8
-xu name 发件人邮箱的用户名
-xp passwd 发件人邮箱授权密码
-m "邮件内容" 邮件的具体内容
-a /data/test.txt 发送test.txt 这个文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix