《書籍上面的練習題》
問題:誰在霸占磁盤資源?
如果您負責的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.www58058.com/17959