我有一台 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.hourly
root 权限下的某个文件,修改前 3 行以适合您的服务器和需求,并使文件可执行。如果您希望更频繁地执行它,请将其保存为脚本并创建常规 cron 作业。
请注意,您将需要某些提供mail
命令的东西,通常来自包qmail-run
或courier-mta
。
答案2
答案3
您可以采用两种不同的策略:
- 使用每分钟/每小时/每天运行的自定义脚本来检测并通知您空间短缺情况
- 安装和部署真正的监控解决方案扎比克斯或类似的。
对于单台服务器,解决方案 1 无疑是更快的途径。但是,对于多台服务器和/或检查多个数据点(例如:内存使用率、CPU 负载等),到目前为止,第二种方法更可取。
答案4
有人能帮我解决以下问题吗?问题:需要设置一个自动作业来在 Linux 机器上执行磁盘空间清理,但我们创建的作业应该在 Linux 机器之外,因此一旦我们触发该作业,就需要清理该 Linux 机器中的空间。有什么建议吗?