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
下一篇 2016-06-09

相关推荐

  • 数组

    一.数组 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间,相当于多个变量的集合。 索引:编号从0 开始,属于数值索引  注:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0 版本之后开始支持,bash 的数组支持稀疏格式(索引不连续) 二.数组的声明 declare -a ARRAY_NAME decla…

    Linux干货 2016-11-23
  • 如何修复Ubuntu 12.04上时间不正确的问题

    大家好: 今天跟大家分享下如何修复ubuntu 12.04上时间不正常的问题。 1–首先打date查看系统的时间是否正常 martell@cnux10:~/sistes/sha-mmb-o2o2o$ date  Thu Dec  1 09:15:47 UTC 2016 martell@cnux10:~/sistes/sha-m…

    Linux干货 2016-12-04
  • Linux文件权限管理及目录文件的深入理解。

    文件权限及目录 初学Linux,感觉这个东西该复杂,而且逻辑非常的强。难~! 自己根据学习到的理论和实践,得出的对文件权限,进程,以及特殊权限的深入理解。希望能解决初学者对于权限的困惑。如有错误请指正。 文件的权限,指定的是什么? 是文件的权限位上的权限,针对三类用户,任何用户都必须是三类用户中的一种,属主属组和其他人的权限rwx   &…

    Linux干货 2016-08-10
  • 马哥教育网络班N22期+第3周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 2、取出最后登录到当前系统的用户的相关信息。     [root@zabbix ~]# id $(who | cut -d' ' -f1 | tail -n 1)    &nbs…

    Linux干货 2016-08-30
  • Btrfs文件系统的管理

    BTRFS文件系统 核心特性 支持将多个底层物理设备组合成同一个设备使用,即多物理卷支持。btrfs可由多个底层物理卷组成:支持RAID,以连击“添加”、“移除”、“修改” 写时复制,在修改文件时,先将文件复制一份,然后在新文件上进行修改,最后将文件名的指针指向新文件,所以原文件还是存在的。 数据及元数据校验码:checksum 子卷:在一个卷上创建子卷,每…

    Linux干货 2016-07-16
  • varnish4 基础实战

    实验环境 node1 192.168.0.8 varnish服务器 node2 192.168.0.3 动态web node3 192.168.0.7 静态web node1安装varnish ##安装varnish yum源  # wget http://repo.varnish-cache.org/redhat/v…

    Linux干货 2016-11-15