返回

为 Linux 用户量身打造的磁盘使用情况监控与邮件通知脚本

见解分享

实时监控 Linux 磁盘使用情况,无缝发送电子邮件通知

简介

现代 IT 环境中数据呈爆炸式增长,及时发现系统磁盘空间不足至关重要,以确保应用和服务正常运行。本文将指导您编写一个 Linux shell 脚本,该脚本可以轻松监控磁盘使用情况,并在达到阀值时发送电子邮件通知。

步骤 1:安装必要组件

首先,安装必要的软件包,包括用于发送电子邮件的邮件实用程序 mailutils。

sudo apt-get update
sudo apt-get install mailutils

步骤 2:创建脚本

创建一个脚本文件,并复制粘贴以下代码:

#!/bin/bash

# 定义磁盘使用率阀值
DISK_USAGE_THRESHOLD=80

# 定义电子邮件通知地址
EMAIL_ADDRESS="you@example.com"

# 获取所有磁盘分区的列表
DISK_PARTITIONS=$(df -h | grep -v Filesystem | awk '{print $1}')

# 循环遍历磁盘分区
for PARTITION in ${DISK_PARTITIONS[@]}; do

    # 获取分区的使用率
    DISK_USAGE=$(df -h ${PARTITION} | tail -1 | awk '{print $5}' | sed 's/%//')

    # 检查磁盘使用率是否达到阀值
    if [ ${DISK_USAGE} -ge ${DISK_USAGE_THRESHOLD} ]; then

        # 发送电子邮件通知
        echo "Disk ${PARTITION} usage is ${DISK_USAGE}%, which is above the threshold of ${DISK_USAGE_THRESHOLD}%" | mail -s "Disk Usage Alert" ${EMAIL_ADDRESS}

    fi

done

步骤 3:赋予脚本可执行权限

sudo chmod +x /usr/local/bin/disk_usage_monitor.sh

步骤 4:创建 Cron 作业

设置一个 Cron 作业来定期运行脚本,例如每小时一次:

sudo crontab -e
0 */1 * * * /usr/local/bin/disk_usage_monitor.sh

步骤 5:测试脚本

运行脚本以检查其功能:

/usr/local/bin/disk_usage_monitor.sh

自定义脚本

您可以根据需要自定义脚本,例如调整磁盘使用率阀值、电子邮件通知内容和接收电子邮件的地址。

结论

通过实施此脚本,您可以主动监控 Linux 系统的磁盘使用情况,并在磁盘空间不足时及时采取措施。这有助于确保系统稳定性和应用程序正常运行。

常见问题解答

  1. 如何修改磁盘使用率阀值?

    • 编辑脚本中的 DISK_USAGE_THRESHOLD 变量。
  2. 如何将电子邮件通知发送到多个地址?

    • mail 命令中指定多个电子邮件地址,例如:mail -s "Disk Usage Alert" email1@example.com email2@example.com
  3. 如果我不愿意使用 mailutils,可以使用其他电子邮件客户端吗?

    • 是的,您可以使用 Sendmail、Postfix 或 Exim 等电子邮件客户端。
  4. 如何调整 Cron 作业的运行频率?

    • 编辑 Cron 表达式中的 * */1 * * * 部分,以指定所需的运行频率。
  5. 脚本还可以监控网络磁盘(如 NFS)吗?

    • 是的,您可以使用 df -Ph 命令获取 NFS 挂载点的使用情况。