监视磁盘空间

        手动监视磁盘空间使用情况是可行的,但是您并不希望不停地运行 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 来查找指定用户所使用的空间。对于更加自动化的用户级磁盘使用情况和控制,配额是一个更好的选择。

posted @ 2015-06-28 21:47  chenshoubiao  阅读(366)  评论(0编辑  收藏  举报