1. 创建检查文件夹大小脚本

让我们创建 bash 脚本 foldersizecheck.sh :

# sudo mkdir -p /root/scripts
# sudo vi /root/scripts/foldersizecheck.sh

粘贴以下几行以检查文件夹的大小:

#!/bin/bash
#capture first passed variable
FOLDER_PATH=
#capture second passed variable
REFERENCE_SIZE=
#calculate size of folder
SIZE=$(/usr/bin/du -s $FOLDER_PATH | /usr/bin/awk '{print }')
#convert size to MB
MBSIZE=$((SIZE/1024))
#output size so Monit can capture it
echo "$FOLDER_PATH  -  $MBSIZE MB"
#provide status code for alert
if [[ $MBSIZE -gt $(( $REFERENCE_SIZE )) ]]; then
    exit 1
fi

使用以下命令使脚本可执行:

# sudo chmod +x /root/scripts/foldersizecheck.sh

运行脚本并以兆字节为单位传递 FOLDER_PATH 变量和 REFERENCE_SIZE 以检查脚本是否正常工作:

# sudo bash /root/scripts/foldersizecheck.sh /home/lotfi/90

我们将看到带有文件夹大小的输出,此处输出大小为 100 MB

/home/lotfi/-  100 MB
如何使用 Monit 检查文件夹大小并发送电子邮件警报

我们将介绍如何使用 shell 脚本使用 Monit 检查文件夹的大小,并在超过允许的特定大小限制的情况下发送警报邮件。

2.配置Monit检查文件夹大小

在/etc/monit.d/目录下创建Monit配置文件

# sudo vi /etc/monit/conf.d/foldersize_check

check program Home_FileSize
    with path "/root/scripts/foldersizecheck.sh /home/lotfi/90"
    every 300 cycles
    if status != 0 then alert

Monit 将每 300 个周期(在 /etc/monit/monitrc 中定义的 Monit 间隔)检查文件夹 /home/lotfi/的大小。
如果文件夹 /home/lotfi 的大小大于 90 MB,Monit 将发送电子邮件警报。

Test Monit 语法使用以下命令有效:

# sudo monit -t

如果没有错误,请使用以下命令重新加载 Monit:

# sudo service monit reload

在超出允许的大小限制的情况下,我们获得如下图所示的失败状态。

并且 Monit 会自动发送电子邮件警报。

日期:2020-06-02 22:18:54 来源:oir作者:oir