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.178linux.com/17959

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

相关推荐

  • 0805 作业

     201608051、当天课程内容笔记2、当天练习3、预习4、取本机ip地址 5、取各分区利用率的数值 6、统计/etc/init.d/functions 文件中每个单词出现的次数,并按频率从高到低显示 7、/etc/rc.d/init.d/functions或/etc/rc.d/init.d/functions/"  取目录名…

    Linux干货 2016-08-07
  • keepalived高可用lvs集群

    实验拓扑   keepalived高可用配置 HA01和HA02的keepalived安装及配置(安装及配置均相同) ~]# yum -y install keepalived HA01和HA02做时间同步,crontab中添加时间同步脚本 ~]# date; ssh 192.168.150.140 'date'   …

    Linux干货 2016-12-06
  • 多实例

    多实例

    Linux干货 2018-01-29
  • VIM使用总结

    VIM使用总结:     I,vim + [option] +filename 其中option为m时,文件以只读模式打开。                               &n…

    Linux干货 2017-06-05
  • N22-第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 # who|cut -d' ' -f1|sort|uniq # root 2、取出最后登录到当前系统的用户的相关信息。 # last|head -n 1 # …

    Linux干货 2016-08-29
  • 用户权限管理及课后作业

    一.权限对目录、文件的意义 文件 r 可用文件查看类工具获取文件内容 w 可以修改文件内容(包括清空) x 可执行该文件 [root@localhost testdir]# cat zzz i am fine  thank you [root@localhost testdir]…

    Linux干货 2016-08-08