小柏实战学习Liunx(图文教程二十七)

本节课主题:监控服务器硬盘使用率,超过阈值,邮件通知,并转移大文件到其他服务器上.

前言:一定要知道每一个命令是啥意思,并且要学会看报错信息,学会使用AI。

 

一: 监控CentOS服务器硬盘使用率在超过75%时发送邮件通知

  1. 安装并配置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 这个文件

 

posted on   shaun88  阅读(10)  评论(0编辑  收藏  举报

编辑推荐:
· 开发者必知的日志记录最佳实践
· 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
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示