我有一个Ubuntu服务器,并面临频繁的空间问题,即日志正在吃掉很多的磁盘空间。 所以,我想要一个检查,以便每当有less于5 GB的可用磁盘空间,我应该得到一个电子邮件通知,以便我可以删除日志。 我如何configuration这个。 我是否需要其他应用程序?
在我的Ubuntu服务器上,当/dev/sdc (my /srv分区)的可用空间less于200MB时,我在/etc/cron.daily中有以下脚本,通过电子邮件提醒我。
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文件的forms将其保存到一个文件中,修改/etc/cron.hourly行以适合您的服务器和需要,并使文件成为可执行文件。 如果你想更频繁地执行它,把它保存为一个脚本并创build一个常规的cron作业。
请注意,您将需要提供mail命令的东西,通常来自包qmail-run或courier-mta 。
您可以使用Nagios来监视和发送电子邮件。 但是,在设置监控之前,我会先设置logrotate来定期轮转日志文件。
适当的系统取决于你在哪里托pipe你的服务器。 例如,如果托pipe在AWS上,则可以configurationAmazon的内置CloudWatch来监视其运行状况,而不是部署新的监视解决scheme。
你可以采取两种不同的策略:
对于单个服务器,解决schemen.1肯定是更快的path。 但是,对于多个服务器和/或检查多个数据点(例如:RAM的使用,CPU负载等),第二个是最好的,迄今。