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