免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1655 | 回复: 0
打印 上一主题 下一主题

磁盘空间监控---列出磁盘使用情况及指定目录下文件及子目录大小 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-08 17:03 |只看该作者 |倒序浏览
#/bin/sh
#
# Program:   totalsize.sh
# Usage  :   totalsize.sh  dirname
# Author :   cnscn
# QQ     :   492843095      
# Time   :   2006-02-04 09:20
# mail   :   cnscn@163.com
#
# 说明   :
#            本脚本用于磁盘空间监控
#                 一般我们常用ls -l命令列出指定目录下文件与文件夹的情况,
#            但当我们想查看其下子目录大小时却全都是4KB大小,从而无法得
#            知子文件夹大小情况,一个个查看又很麻烦,于是就写了这个脚本,
#            希望能对大家有所帮助。[部分程序及思路来源于网络,谢谢]
#
# 注意   :    每行的\后面不要有空格
#            请保留以上版权信息,谢谢使用
#show the disks information
echo
echo "1)Disks"
echo
df -h
echo
echo
echo
#show the files infomation
#sed 's:/.*/\([^/]\{1,\}\)$:\1:g   //remove the diretories of the filename, /home/cnscn/abc -> abc
ls -al $1 |grep -v ^d  |sort -n  +4 | awk ' \
BEGIN{ \
    print  "2) Files\n"; \
    print  "  No.          MB                  KB                Files"; \
    print  "------   --------------      -----------   --------------------------"; \
    nums=0; \
} \
{\
    if($8 !~ /\.|\.\./ && NF>2) \
    { \
        nums=nums+$5; \
        printf "%3d   %14.3fM    %14.3fK    %s\n",NR,$5/1024/1024M,$5/1024,$NF; \
    } \
} \
  \
END{ \
     printf "\ntotal:\n--------------------------------------------------------------------------\n%20.3fM       %11.3fK",nums/1024/1024,nums/1024; \
}' |sed 's:/.*/\([^/]\{1,\}\)$:\1:g'
echo
echo
echo
#show the sub directories infomation
#sed -e '$d'            //delete the lastest line, because it always the $1
du $1 --max-depth=1 |sed -e '$d'|sort -n|awk  ' \
BEGIN{ \
     print  "3) Dirs\n"; print  "  No.      GB             MB                  KB            Directories"; \
     print  "------ ---------    --------------      -----------   --------------------------"; \
     nums=0; \
     sizeend=0; \
} \
{ \
  { \
     nums=nums+$1; \
     printf "%3d    %6.3fGB   %14.3fM   %14.3fK    %s\n",NR,$1/1024/1024,$1/1024,$1,$NF; \
  } \
} \
END{ \
     printf "\ntotal:\n------------------------------------------------------------------------\n%14.3fGB %14.2fMB  %14.2fKB",nums/1024/1024,nums/1024,nums; \
}' |sed 's:/.*/\([^/]\{1,\}\)$:\1:g'
echo
=======================示例================================
[root@localhost ~]# ./totalsize.sh /home/cnscn
1)Disks
Filesystem            容量  已用 可用 已用% 挂载点
/dev/hda1              12G  5.1G  6.1G  46% /
none                  474M     0  474M   0% /dev/shm
/dev/hda2              20G  7.1G   12G  39% /opt
/dev/hda3             4.9G  193M  4.4G   5% /var
2) Files
  No.          MB                  KB                Files
------   --------------      -----------   --------------------------
  1            0.000M             0.000K    .recently-used
  2            0.000M             0.000K    .ICEauthority
  4            0.000M             0.025K    .dmrc
  5            0.000M             0.115K    .bash_history
  6            0.000M             0.117K    .gtkrc
  7            0.000M             0.121K    .bashrc
  8            0.000M             0.133K    .gtkrc-1.2-gnome2
  9            0.000M             0.187K    .bash_profile
10            0.000M             0.297K    .bash_logout
11            0.000M             0.374K    .emacs
12            0.000M             0.457K    .rhn-applet.conf
13            0.001M             0.643K    .zshrc
14            0.005M             5.487K    .canna
15            0.012M            11.830K    .fonts.cache-1
16           14.669M         15021.084K    IPQQ2006.exe
17           15.627M         16001.558K    setup.exe
18          208.760M        213770.000K    WinXPSP2-V3.5.iso
total:
--------------------------------------------------------------------------
             239.075M        244812.428K
3) Dirs
  No.      GB             MB                  KB            Directories
------ ---------    --------------      -----------   --------------------------
  1     0.000GB            0.008M            8.000K    bin
  2     0.000GB            0.008M            8.000K    Desktop
  3     0.000GB            0.008M            8.000K    .eggcups
  4     0.000GB            0.008M            8.000K    .gnome2_private
  5     0.000GB            0.016M           16.000K    .gstreamer-0.8
  6     0.000GB            0.016M           16.000K    .xemacs
  7     0.000GB            0.023M           24.000K    .fcitx
  8     0.000GB            0.023M           24.000K    .metacity
  9     0.000GB            0.023M           24.000K    .nautilus
10     0.000GB            0.031M           32.000K    .fullcircle
11     0.000GB            0.031M           32.000K    .gnome
12     0.000GB            0.031M           32.000K    .vmware
13     0.000GB            0.035M           36.000K    .kde
14     0.000GB            0.055M           56.000K    .config
15     0.000GB            0.055M           56.000K    .gconfd
16     0.000GB            0.145M          148.000K    .gnome2
17     0.000GB            0.156M          160.000K    .rhn-applet
18     0.000GB            0.492M          504.000K    .gconf
19     0.001GB            1.277M         1308.000K    .wine
20     0.006GB            5.793M         5932.000K    .mozilla
total:
------------------------------------------------------------------------
         0.008GB           8.23MB         8432.00KB

文件:
totalsize.sh.zip
大小:
1KB
下载:
下载


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/15112/showart_82623.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP