shell监控磁盘使用情况

监控磁盘使用率

yum -y install mailx
yum -y install  sendmail 

01 实现过程

一般我们通过df -hl这个命令来查看磁盘的使用率,如下:
在这里插入图片描述
比如上图中的例子(我是通过vm安装的centos,只分配了40G),可以看到/dev/sda3 磁盘挂载了用户主目录,总容量38G,已使用3.3G,使用率为9%,我们主要对9%这个数字来做监控,与设定值90%进行比较。

编写一个脚本,名为space.sh

先用awk 把命令行查看的使用率数字取出,可先在命令行做实验:
在这里插入图片描述
测试成功后写入脚本

监控磁盘空间使用情况,超过85%发送邮件预警

#! /bin/bash
LANG=en_US.UTF-8
diskUsed=$(df -h|awk -F '[ %]+'  '/\/$/{print $5}')
logFile=/tmp/jiankong.log
 
function Sendmail(){
    mail -s"监控报警" zzzzzz@163.com < $logFile
}
function check(){
    if [ $diskUsed -ge 85 ];then
       echo "磁盘使用率:${diskUsed}%" > /tmp/jiankong.log
      Sendmail
    fi
}
 
function main(){
    check
}
 
main

然后配置好crontab自动执行,这里我设置每隔30分钟自动执行一次

*/30 * * * * sh /home/admin/check.sh

LANG=en_US.UTF-8 指定编码格式为UTF-8格式
awk的用法
在这里插入图片描述
$5代表第五列

echo “磁盘使用率:${diskUsed}%” > /tmp/jiankong.log

shell提供了花括号“{}”来限定一个变量的开始和结束。在紧跟变量输出字母后缀时,就必须要使用这个功能。

如这里的${diskUsed}%,diskUsed变量存储的是数字,加了一个%后缀

常见问题

问题一:

首先发送邮件要对qq邮箱设置->账户->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务->IMAP/SMTP服务 设置为 开启
得到一个授权码,问题二会用到

问题二:

编辑文件
vim /etc/mail.rc
随意位置添加
set from=qq号码@qq.com

set smtp=smtp.qq.com

set smtp-auth-user=qq号码@qq.com

set smtp-auth-password=授权码

set smtp-auth=login

问题三:

如果不能发送 可以试下是否能发送成功
echo a | mailx -v -s “1” qqnum@qq.com

发送邮件到QQ邮箱,收不到邮件
在这里插入图片描述
发送邮件到163邮箱,可以收到邮件
在这里插入图片描述
在这里插入图片描述

参考链接 :

Linux脚本编写程序监控系统信息并设置报警自动发送邮件 :https://blog.csdn.net/qq_42747175/article/details/83186938?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值