HOME

VPS 磁盘空间不足时,发邮件提醒

Table of Contents

1 获取磁盘空间信息

使用 df(1) 查看磁盘空间

df -hP --total
Filesystem      Size  Used Avail Use% Mounted on
udev            477M     0  477M   0% /dev
tmpfs           100M  5.8M   94M   6% /run
/dev/vda1        29G   11G   17G  38% /
tmpfs           497M     0  497M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           497M     0  497M   0% /sys/fs/cgroup
tmpfs           100M     0  100M   0% /run/user/1000
total            31G   11G   19G  36% -

当可用空间低于 15% 时视为空间不足。首先获得已使用空间的百分比

df -hP --total | tail -1 | awk '{ print $5 }' | cut -d'%' -f1
36

2 发送邮件

VPS 上并没有现成的发邮件的设施,所以用自己的邮箱给自己发邮件。

安装 s-nail (如果用的是 Ubuntu 16.04 之前的版本的话,可能没有这个包,可以把 s-nail 换成 heirloom-mailx,这两个是同一个包)

sudo apt install s-nail

发一份邮件测试下

df -h | s-nail -v -r "mail@xuchunyang.me"             \
               -s "Alert - VPS Disk is nearly full"   \
               -S smtp="smtp.exmail.qq.com:587"       \
               -S smtp-use-starttls                   \
               -S smtp-auth=login                     \
               -S smtp-auth-user="mail@xuchunyang.me" \
               -S smtp-auth-password="PASSWORD"       \
               -S ssl-verify=ignore                   \
               mail@xuchunyang.me

成功之后,把 SMTP 认证写入配置文件中,方便以后使用。

  • heirloom-mailx 的配置文件 /etc/nail.rc
  • s-nail 的配置文件在 /etc/s-nail.rc
set smtp=smtp.exmail.qq.com:587       \
    smtp-use-starttls                 \
    smtp-auth=login                   \
    smtp-auth-user=mail@xuchunyang.me \
    smtp-auth-password="PASSWORD"     \
    ssl-verify=ignore

set from=mail@xuchunyang.me

于是完整的检测磁盘空间的命令 (如果安装的是 heirloom-mailx 的话,把下面命令中的 s-nail 换成 heirloom-mailx)

[ $( df -hP --total | tail -1 | awk '{ print $5 }' | cut -d'%' -f1) -ge 85 ] && df -h | s-nail -v -s 'Warnning: Disk is nearly full' mail@xuchunyang.me

3 设置 Cron 任务

每天凌晨一点检查磁盘空间,运行 crontab -e 加入

# m h  dom mon dow   command
0 1 * * * [ $( df -hP --total | tail -1 | awk '{ print $5 }' | cut -d'%' -f1) -ge 85 ] && df -h | s-nail -v -s 'Warnning: Disk is nearly full' mail@xuchunyang.me

Created: 2017-03-12 | Modified: 2017-03-17 | Org source | History

Author: Chunyang Xu <mail@xuchunyang.me>

Proudly Powered by Emacs & Org mode

Validate XHTML 1.0