系统管理员工具包: 监视磁盘空间和使用情况
2008-11-12 08:29:45 来源:WEB开发网自动监视
手动监视磁盘空间使用情况是可行的,但是您并不希望不停地运行 df(甚至 du)来确定已使用的或可用的磁盘空间。您可以使这个过程自动化,并且当可用空间降低到一定的级别时,自动地向管理员(或者管理员组)发送电子邮件。清单 10 中的脚本用来监视磁盘空间,您可以设置警告 (warninglimit) 和紧急情况 (lowlimit) 限制,以及进行检查的文件系统的列表。
清单 10. 监视磁盘空间
#!/bin/sh
warninglimit=500000
lowlimit=250000
filesystems="/export/data /export/home /"
for fs in $filesystems
do
size=`df -k $fs|grep $fs|awk '{ print $4; }'`
if [ $size -le $lowlimit ]
then
mailx -s "URGENT: Low disk space for $fs ($size)"
break
fi
if [ $size -le $warninglimit ]
then
mailx -s "WARNING: Low disk space for $fs ($size)"
fi
done
其中关键的一行是提取每个文件系统中空闲磁盘空间的大小:
size=`df -k $fs|grep $fs|awk '{ print $4; }'`
该脚本使用 df 仅提取了要进行 grep 的行,然后使用 awk 提取数据的第 4 列,该列是空闲空间的大小。
然后,您可以根据 warninglimit/lowlimit 来检查空闲空间,并生成合适的错误。要避免系统同时发生下限和警告错误,该脚本首先检查下限,并在尝试测试警告之前使用 break 跳到循环中的下一个文件系统。
结束语
监视磁盘空间是管理员的一项重要工作,耗尽磁盘空间将可能严重地影响用户的工作,并且在严重的情况下,可能会丢失数据,或者使得系统崩溃,因为系统无法获得运行所需的磁盘空间。
使用 df,您可以确定整个文件系统的空闲空间和空间使用情况,但这只是描述了部分信息。要确定磁盘空间用于何处,您需要使用 du 工具对不同的目录进行研究。通过使用 find,您甚至可以使用 du 来查找指定用户所使用的空间。对于更加自动化的用户级磁盘使用情况和控制,配额是一个更好的选择。
更多精彩
赞助商链接