- 论坛徽章:
- 0
|
#/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 |
|