Shell Script 自动检查硬盘使用量


Linux 下要用 Shell Script 自动检查硬盘分割区的使用量, 可以透过 df 指令实现。 df 指令可以在 Linux 下检视硬盘分割区使用量, 配合 grep 及 awk 撷取所需的资讯, 便可以用 Shell Script 自动检查硬盘使用量, 当发现使用量超过设定的百分比 (例如 80%) 时, 再用 mail 指令发出电子邮件通知系统管理员。

执行 “df -h” 时会得出类似以下结果:

可以看到有些资讯是不需要的, 那便用 grep 过滤掉不需要的行, 例如有 “Filesystem” 及 “tmpfs” 字串的行:

这时可以再加上 awk, 只把第 1 栏及第 5 栏的资料撷取, 即 /dev/sda 及 17% 的内容:

现在轮到 Shell Script 的部份, 建立以下 Shell Script:

$ vim mon-disk.sh

然后加入以下内容:

其中有 3 个变量可以按需要修改:

ADMIN: 当硬盘分割区超过指定的使用量后, 发送到的电邮地址.
ALERT: 当硬盘分割区超过这个百分比时, 才会发送电邮.
EXCLUDE_LIST: 不用检查的分割区.

完成后设定可执行权限, 以下假设上面 Shell Script 储存在 /root/mon-disk.sh:

$ chmod +x /root/mon-disk.sh

最后设定 crontab 排程自动执行:

$ crontab -e

加入以下内容, 以下是每天 02:00 执行:

0 2 * * * /root/mon-disk.sh

One Response

  1. oscar 05 January 2023

Leave a Reply