检查 Linux 上的可用空间,如有紧急请发送电子邮件

检查 Linux 上的可用空间,如有紧急请发送电子邮件

我刚刚处理完一个空间不足的服务器,现在想在其上设置监控,以防止它将来出现严重问题。

我希望root当可用空间低于xx% 时,向帐户发送一封电子邮件(转发到我的工作电子邮箱),并且它是可配置的。

我知道我可以使用df -h命令来获取人性化文本布局,但我并不想每天都收到报告。我只希望在某些分区/挂载点已满且剩余空间不足一定百分比时才向我发送报告。

我擅长编写脚本,但我不知道该怎么做。下面是我手动运行的命令的示例输出:

# df -h
Filesystem                                              Size  Used Avail Use% Mounted on
rootfs                                                   74G  6.4G   64G  10% /
udev                                                     10M     0   10M   0% /dev
tmpfs                                                   387M  320K  387M   1% /run
/dev/disk/by-uuid/615e2eca-0e01-4f3f-99d3-5a0560a78f9a   74G  6.4G   64G  10% /
tmpfs                                                   5.0M     0  5.0M   0% /run/lock
tmpfs                                                   773M     0  773M   0% /run/shm
/dev/md0                                                939M   51M  841M   6% /boot
/dev/md3                                                844G  535G  266G  67% /images
/dev/md2                                                2.7T  1.7T  955G  64% /var

答案1

这应该可以让你开始:

#!/bin/sh

MOUNTPOINTS="/ /home"
THRESHOLD=90

for MOUNT in ${MOUNTPOINTS}; do

  CURRENT=$(df ${MOUNT} | grep / | awk '{ print $5}' | sed 's/%//g')

  if [ "${CURRENT}" -gt "${THRESHOLD}" ] ; then
    mail -s 'Disk Space Alert' root << EOF

Your ${MOUNT} partition remaining free space is critically low. Used: ${CURRENT}%
EOF

  fi

done

这是基于以下代码的马利克·阿琼

相关内容