文件系统监控

文件系统监控

在一个脚本中,我们需要想出一种使磁盘空间监控更加智能的方法。在较小的文件系统上,我们仍然希望在 90% 已满时发出警报,但在较大的文件系统上,我们应该仅在只有几 GB 可用空间时发出警报。

有人可以解释一下吗?

答案1

有多个选项,但您需要根据您的要求修改以下脚本。

#!/usr/bin/awk -f
BEGIN{
ADMIN="root@localhost"
threshold=20
"date" | getline date
"uname -n" | getline hostname

    while("LC_ALL=C df -Ph" | getline){
        used=$5
            if($1 != "Filesystem" && int(used) >= threshold){
            print "Running out of space: "$1,used" used on "hostname" as on: "date
            print "mail -s \"Alert: Almost out of disk space: " $1,used" used\" "ADMIN" >/dev/null" | "sh"
            close("sh");
            }
    }
}

您可以参考以下链接 http://www.cyberciti.biz/tips/shell-script-to-watch-the-disk-space.html

http://mmonit.com/monit/

http://www.linuxjournal.com/content/tech-tip-send-email-alert-when-your-disk-space-gets-low

答案2

您可以(ab)使用 Nagios 插件check_disk来实现此目的。优点是这个软件是轻量级的,经过充分测试,并且可能已经由您的包管理器提供(Debian/Ubuntu 包nagios-plugins-basic)。用法示例:

check_disk -w 10% -c 3 -u GB -p / -p /mnt

在此示例中,它检查两个连接点//mnt。如果退出时的退出状态为 2,则磁盘的可用空间少于 3GB;如果退出时的状态为 1,则磁盘的可用空间少于 10%;如果退出时的状态为 0,则这两个值都未达到。检查 Bash 中的退出状态很简单,即$?.

相关内容