Linux shell腳本編程練習題

《書籍上面的練習題》

問題:誰在霸占磁盤資源?

    如果您負責的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

(2)
nice_neo_linuxnice_neo_linux
上一篇 2016-06-09
下一篇 2016-06-09

相關推薦

  • 0809linux基礎小記(sed和vim用法)

    sed  [options] ‘scripts’ inputfile -n: 不輸出模式空間內容的自動打印 -e: 多點編輯 -f:從指定文件中讀取編輯腳本 -i:原處編輯 scripts: ’地址命令’ 地址定界: (1)  不給地址:對全文進行處理 (2)  單地址: #:  指定的行 例: sed '2…

    Linux干貨 2016-08-11
  • 馬哥教育網絡21期+第八周練習博客

    馬哥教育網絡21期+第八周練習博客 # 1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 集線器:工作于ISO模型的物理層,防止由于距離遠,信號衰減; 網橋:用來連接不同網段,隔離沖突域; 二層交換機:二層交換機一般做為了三層交換機以下,利用設備mac地址進行通信,可以劃分vlan,隔離廣播域; 三層交換機:用于核心數據轉發,不…

    Linux干貨 2016-09-05
  • ansible進階(roles應用)

    ansible 進階 一、roles簡介 一個項目從開始到結束,不是簡單幾十個playbook就可以完事了,當文件數很多,有上百個的話,僅通過簡單的includes不停的引用,那最終的結果錯綜復雜。這個時候ansible roles就可以很好的發揮它的作用了。 roles,字面意思是角色的含義,可以理解為有相互關聯功能的集合。我們把安裝ntp、mem、ngi…

    2017-01-05
  • linux 目錄結構

    該文章主要來自于網絡資料進行整理 目錄結構參考地址: http://www.iteye.com/topic/1125162 http://yangrong.blog.51cto.com/6945369/1288072 http://itlab.idcquan.com/linux/administer/939529_1.html http://itlab.id…

    系統運維 2015-12-19
  • 循環語句

    馮羅伊曼體系架構 1.?輸入設備 2.?輸出設備 3.?存儲器 4.?運算器 5.?控制器 轉義序列:\\, \t , \r , \n , \”, ?\’ Python:是動態語言,強類型語言 算數運算符 + – */ % ** /是自然除,//是整除 位運算符 & | ?~ ?^ ?<< ?>> 原碼 5=&gt…

    Linux干貨 2018-03-26
  • 用戶和組相關配置文件

    1. /etc/passwd文件詳解 輸入vi /etc/passwd 可以查看此文件的內容 [root@localhost ~]# vi /etc/passwdroot:x:0:0:root:/root:/bin/bash root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/…

    Linux干貨 2016-10-23
欧美性久久久久