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
我们将介绍如何使用 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