服务器磁盘空间不足问题通知

服务器磁盘空间不足问题通知

我有一台 ubuntu 服务器,经常遇到空间问题,即日志占用了大量磁盘空间。因此,我希望应用检查,以便每当可用磁盘空间少于 5 GB 时,我都会收到电子邮件通知,以便我可以删除日志。我该如何配置它。我还需要其他应用程序吗?

答案1

在我的 Ubuntu 服务器上,我有以下脚本,每当(我的分区)可用空间少于 200MB时,/etc/cron.daily它就会通过电子邮件提醒我。/dev/sdc/srv

ALERT=200
UNIT=M
PARTITION=/dev/sdc

df -B$UNIT | grep "^$PARTITION" |
while read partition size used free perc mnt ;
do
        free_space=$(echo $free | tr -d $UNIT )
        if [ $free_space -le $ALERT ]; then
                echo "Partition $partition ($mnt) running out of space ($free) on $(hostname) as on $(date)" |
                mail -s "Alert: $mnt almost out of disk space on $(hostname) - $free" root
        fi
done

最初摘自 nixCraft 上的这篇博客文章。将其保存为/etc/cron.hourlyroot 权限下的某个文件,修改前 3 行以适合您的服务器和需求,并使文件可执行。如果您希望更频繁地执行它,请将其保存为脚本并创建常规 cron 作业。

请注意,您将需要某些提供mail命令的东西,通常来自包qmail-runcourier-mta

答案2

您可以使用纳吉奥斯用于监控和发送电子邮件。但在设置监控之前,我首先要设置日志旋转定期轮换日志文件。

适当的系统取决于您托管服务器的位置。例如,如果它托管在 AWS 上,您可以配置 Amazon 的内置云监控来监控其健康状况,而不是部署新的监控解决方案。

答案3

您可以采用两种不同的策略:

  • 使用每分钟/每小时/每天运行的自定义脚本来检测并通知您空间短缺情况
  • 安装和部署真正的监控解决方案扎比克斯或类似的。

对于单台服务器,解决方案 1 无疑是更快的途径。但是,对于多台服务器和/或检查多个数据点(例如:内存使用率、CPU 负载等),到目前为止,第二种方法更可取。

答案4

有人能帮我解决以下问题吗?问题:需要设置一个自动作业来在 Linux 机器上执行磁盘空间清理,但我们创建的作业应该在 Linux 机器之外,因此一旦我们触发该作业,就需要清理该 Linux 机器中的空间。有什么建议吗?

相关内容