Linux 磁盘使用率达到阈值报警邮件提醒

大量写入日志或存在某大文件占满磁盘,会造成应用程序崩溃。对于此问题,可以使用一个简单的shell,实现磁盘使用率接近阈值时,进行邮件提醒的功能。

环境

  • Ubuntu 16.04

邮件服务

安装 heirloom-mailx

sudo apt-get install heirloom-mailx

配置 smtp

vi /etc/s-nail.rc (或nail.rc)

按使用的相应邮箱服务配置,password一般使用授权码

// s-nail.rc set from="XXX@163.com" set smtp="smtp.163.com" set smtp-auth-user="XXX@163.com" set smtp-auth-password="xxx" set smtp-auth=login

测试是否发送成功

echo date "邮件内容" | heirloom-mailx -vs "标题" xxx@163.com

shell脚本

创建脚本disk-space-notice.sh,如果/dev/sda1磁盘分区使用率超过85%,则发送邮件提醒。

// disk-space-notice.sh dev_sda1=`df -h | sed -n '4p' | awk '{print $5}' | cut -f 1 -d '%'` if         ((dev_sda1 > 85)); then         echo "VM服务器-dev_sha1 磁盘使用率超过阈值" | heirloom-mailx -vs ">服务器报警通知" xxx@163.com fi

简单解释代码

主要使用了此段命令

df -h | sed -n '4p' | awk '{print $5}' | cut -f 1 -d '%'

df -h 查看磁盘占用

文件系统        容量  已用  可用 已用% 挂载点 udev            1.9G     0  1.9G    0% /dev tmpfs           393M   41M  352M   11% /run /dev/sda1        29G   23G  4.6G   84% / tmpfs           2.0G   10M  2.0G    1% /dev/shm tmpfs           5.0M  4.0K  5.0M    1% /run/lock tmpfs           2.0G     0  2.0G    0% /sys/fs/cgroup

最终,我们要拿到/dev/sda1的已使用率的值 84

  • sed -n '4p' 输出/dev/sda1所在行
  • awk '{print $5}' 拿到已使用率 84%
  • cut -f 1 -d '%' 切掉%

定时任务

将检测磁盘使用率的 shell,加入定时任务,指定一段时间内执行一次

// crontab -e  */10 * * * * /bin/bash /home/ghost/disk-space-notice.sh
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!