加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux监控磁盘空间并发送邮件

发布时间:2020-12-14 00:16:05 所属栏目:Linux 来源:网络整理
导读:1.安装mailx工具,mailx是一个小型的邮件发送程序 yum install mailx ? 2.编辑配置文件 vim /etc/mail.rc # 添加如下内容 ? 情况一:25端口开放情况 set from=6247***@qq.com # 对方收到邮件时显示的发件人 set smtp=smtp.qq.com # 指定第三方发邮件的smtp服

1.安装mailx工具,mailx是一个小型的邮件发送程序

yum install mailx

?

2.编辑配置文件

vim /etc/mail.rc   #添加如下内容

?

情况一:25端口开放情况

set from=6247***@qq.com                 #对方收到邮件时显示的发件人
set smtp=smtp.qq.com       #指定第三方发邮件的smtp服务器地址,如:smtp.qq.com
set smtp-auth-user=6247***@qq.com     #第三方发邮件的用户名
set smtp-auth-password=*****  #用户名对应的密码,QQ邮箱可以使用授权码
set smtp-auth=login                           #SMTP的认证方式,默认是login

?

情况二:25端口不开放

set from=62475***@qq.com                 
set smtp=smtp.qq.com       
set smtp-auth-user=6247***@qq.com     
set smtp-auth-password=*****  
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/root/.certs   #制定的存放QQ邮箱SSL证书的位置。

?

保存上述的编辑退出。

因为需要QQ邮箱的SSL证书,所以我们还需要手动的获取QQ邮箱的证书保存到本地指定的目录里以备调用和验证,具体命令如下:

mkdir -p /root/.certs/
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne ‘/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p‘ > ~/.certs/qq.crt
certutil -A -n "GeoTrust SSL CA" -t "C," -d ~/.certs -i ~/.certs/qq.crt
certutil -A -n "GeoTrust Global CA" -t "C," -d ~/.certs -i ~/.certs/qq.crt
certutil -L -d /root/.certs

?

还需要进入邮箱SSL证书存放目录/root/.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.**

?

这是为了信任证书的标记操作。

3.测试发送邮件

echo "测试邮件" | mail -s "测试" 6247***@qq.com
 

4.准备Shell脚本

#!/bin/sh
email="6247***@qq.com"     #接收邮件的邮箱
df -Ph | grep -vE ‘^Filesystem|tmpfs|cdrom‘ | awk ‘{ print $5,$1 }‘ | while read output;
do
  echo $output
  used=$(echo $output | awk ‘{print $1}‘ | sed s/%//g)
  partition=$(echo $output | awk ‘{print $2}‘)
  if [ $used -ge 90 ]; then            #预警界限,使用的百分比
  echo "$(hostname) 上的分区:"$partition" 已使用 $used%  $(date)" | mail -s "磁盘空间警报: $(hostname) 已使用 $used% " $email      #echo后边为正文,mail -s后边为主题
  fi
done

?

在windows下编辑的shell,到linux报错,执行

sed -i ‘s/r$//‘ shell.sh

?

5.准备定时任务

[[email?protected] /home/app]$  crontab -e
00 10 * * * /bin/sh /home/app/backup/disk.sh

?

使用定时任务定时执行脚本以达到监控磁盘空间预警发送邮件的功能。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读