디렉토리의 사이즈 출력해주는 쉘 정보
Linux 디렉토리의 사이즈 출력해주는 쉘본문
잘되는 소스네요.
도움이 되시길...
#!/bin/sh
# =====================================
# Version 2.0 SPACE
# Sort By Size
# =====================================
clear;
echo "";
echo "";
echo "";
df -k ;
APW=`pwd`
#for Sun Server
#du -ok . 2>/dev/null | nawk -F/ -v pas=$APW '
#for Linux Server
du -Sk . 2>/dev/null | awk -F/ -v pas=$APW '
BEGIN {
print "\t\t\t---------------------------";
print "\t\t\t DIsk Usae of current Dir";
print "\t\t\t--------------------------";
printf "\t\t\t [%s] \n\n", pas;
printf"\t\t----------------------------------------------------\n"
printf"\t\t%-20s : %10s : %10s \n","DIRNAME", "SIZE (MB)","Subdir cnt";
printf"\t\t----------------------------------------------------\n"
tots=0;
tcnt=0;
i=0;
}
{
pos=index($1, ".");
size=substr($1,1, pos-1);
tcnt++;
tots+=size;
if ( NR ==1 )
{
dirs=$2;
dsize=0;
dcnt=0;
}
if ( dirs == $2 )
{
dsize+=size;
dcnt++;
}
else
{
# printf"\t\t%-20s : %10.2fMB : %10d \n",dirs, dsize/1024, dcnt;
DIR[i]= dirs;
Dsize[i]=dsize/1024;
Dcnt[i]=dcnt;
dirs=$2;
dsize=size;
dcnt=1;
i = i + 1;
}
}
END {
DIR[i] = "./";
Dsize[i]=dsize/1024;
Dcnt[i]=dcnt;
# SORT SECTION
for ( j=0; j<i ; j++ )
{
for ( k=j+1; k<=i ; k++ )
{
if ( Dsize[j] > Dsize [k]){
tmp1=DIR[j];
tmp2=Dsize[j];
tmp3=Dcnt[j];
DIR[j]=DIR[k];
Dsize[j]=Dsize[k];
Dcnt[j]=Dcnt[k];
DIR[k]=tmp1;
Dsize[k]=tmp2;
Dcnt[k]=tmp3;
}
}
}
# PRINT SECTION
for ( j=0; j<=i ; j++ )
{
printf"\t\t%-20s : %10.2fMB : %10d \n",DIR[j], Dsize[j], Dcnt[j];
}
printf"\t\t----------------------------------------------------\n"
printf"\t\t%-20s : %10.2fMB : %10d \n","TOTALSIZE", tots/1024, tcnt;
printf"\t\t----------------------------------------------------\n"
printf"\t\t -- Copy Right @ Choi Doo Rip 2001 01 09 -- \n"
}'
출처: http://blog.naver.com/couplewith?Redirect=Log&logNo=60006771096
테스트 결과:
파일시스템 1K-블럭 사용됨 사용가능 사용% 마운트 됨
/dev/sda1 234529248 30103840 192512008 14% /
udev 1011560 260 1011300 1% /dev
none 1011560 708 1010852 1% /dev/shm
none 1011560 164 1011396 1% /var/run
none 1011560 0 1011560 0% /var/lock
none 1011560 0 1011560 0% /lib/init/rw
---------------------------
DIsk Usae of current Dir
--------------------------
[/home]
----------------------------------------------------
DIRNAME : SIZE (MB) : Subdir cnt
----------------------------------------------------
./ : 0.00MB : 1
byoungguk : 8614.42MB : 863
----------------------------------------------------
TOTALSIZE : 8614.42MB : 864
----------------------------------------------------
-- Copy Right @ Choi Doo Rip 2001 01 09 --
0
댓글 0개