《书籍上面的练习题》
问题:谁在霸占磁盘资源?
如果您负责的Linux服务器上有许多用户,则经常需要解决的一个问题就是谁在使用所有磁盘空间。这是个老掉牙的问题有时比其他问题更难以弄清。
不幸的是,虽然跟踪用户磁盘空间使用情况非常重要,但却没有一个Linux命令可以提供此信息。因此需要通过shell脚本将命令拼凑起来提取需要查找的信息。
效果如下:
Total Disk Usage by User User Space Percent -------------------------- user5 44 16.18% user7 28 10.29% user6 28 10.29% user4 28 10.29% user3 28 10.29% user2 28 10.29% user1 28 10.29% neo 28 10.29% user9 16 5.88% user8 16 5.88% -------------------------- Total 272
脚本如下:
#!/bin/bash #calculate disk usage and report per user Temp=`mktemp -t tmp.XXX` #反引号,命令的执行结果 du -s /home/* | grep -v lost+found | sed 's/\/home\///g' | sort -g -r > $Temp Total=`du -s /home | awk '{print $1}'` #反引号,命令的执行结果 cat $Temp | awk -v n="$Total" ' BEGIN { print "\033[31mTotal Disk Usage by User\033[0m"; print "User\tSpace\tPercent"; print "--------------------------" } { printf "%s\t%d\t%6.2f%\n",$2,$1,($1/n)*100 #printf格式化输出 #.#:第一个数字控制显示的宽度;第二个#表示小数点后的精度; } END { print "--------------------------"; printf "Total\t%d\n",n }' rm -f $Temp
原创文章,作者:nice_neo_linux,如若转载,请注明出处:http://www.178linux.com/17959