Loading... <p>《书籍上面的练习题》</p> <p>问题:谁在霸占磁盘资源?</p> <p> 如果您负责的Linux服务器上有许多用户,则经常需要解决的一个问题就是谁在使用所有磁盘空间。这是个老掉牙的问题有时比其他问题更难以弄清。</p> <p> 不幸的是,虽然跟踪用户磁盘空间使用情况非常重要,但却没有一个Linux命令可以提供此信息。因此需要通过shell脚本将命令拼凑起来提取需要查找的信息。</p> <p>效果如下:</p> <pre class="brush:bash;toolbar:false">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</pre> <p></p> <p></p> <p></p> <p></p> <p>脚本如下:</p> <pre class="brush:bash;toolbar:false">#!/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</pre> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信