понедельник, 25 июля 2016 г.

Читаемый вывод команд df и du в HP-UX

В HP-UX для вывода информации о использовании дискового пространства можно использовать команды bdf и df.

Вывод команды bdf.

[root@tst ~]# bdf
Filesystem          kbytes    used   avail %used Mounted on
/dev/vg00/lvol3    1048576  350520  693288   34% /
/dev/vg00/lvol1    1835008  621392 1204184   34% /stand
/dev/vg00/lvol8    8912896 6560040 2338640   74% /var
/dev/vg00/lvol7    4554752 3153448 1390416   69% /usr
/dev/vg00/lvol4     524288   25072  496080    5% /tmp
/dev/vg00/lvol9    20971520 12334363 8158928   60% /oracle
/dev/vg00/lvol6    8224768 5740920 2465424   70% /opt
/dev/vg00/lvol5     131072   74104   56560   57% /home
[root@tst ~]#

Вывод команды df.

[root@tst ~]# df -k
/home                  (/dev/vg00/lvol5       ) :   130664 total allocated Kb
                                                     56560 free allocated Kb
                                                     74104 used allocated Kb
                                                        57 % allocation used
/opt                   (/dev/vg00/lvol6       ) :  8206344 total allocated Kb
                                                   2465424 free allocated Kb
                                                   5740920 used allocated Kb
                                                        70 % allocation used
/oracle                (/dev/vg00/lvol9       ) : 20493290 total allocated Kb
                                                   8158934 free allocated Kb
                                                  12334356 used allocated Kb
                                                        61 % allocation used

/tmp                   (/dev/vg00/lvol4       ) :   521152 total allocated Kb
                                                    496080 free allocated Kb
                                                     25072 used allocated Kb
                                                         5 % allocation used
/usr                   (/dev/vg00/lvol7       ) :  4543864 total allocated Kb
                                                   1390416 free allocated Kb
                                                   3153448 used allocated Kb
                                                        70 % allocation used
/var                   (/dev/vg00/lvol8       ) :  8898680 total allocated Kb
                                                   2338640 free allocated Kb
                                                   6560040 used allocated Kb
                                                        74 % allocation used
/stand                 (/dev/vg00/lvol1       ) :  1825576 total allocated Kb
                                                   1204184 free allocated Kb
                                                    621392 used allocated Kb
                                                        35 % allocation used
/                      (/dev/vg00/lvol3       ) :  1043808 total allocated Kb
                                                    693288 free allocated Kb
                                                    350520 used allocated Kb
                                                        34 % allocation used
[root@tst ~]#

Как то не очень "красиво", можно тогда использовать такую команду(взята здесь).


df -Pk | awk '
BEGIN {print "Filesystem                          Mount Point                 Total GB   Avail GB    Used GB  Used"
       print "----------------------------------- ------------------------- ---------- ---------- ---------- -----"}
END {print ""}
/dev/ || /^[0-9a-zA-Z.]*:\// {
printf ("%-35.35s %-25s %10.2f %10.2f %10.2f %4.0f%\n",$1,$6,$2/1024/1024,$4/1024/1024,$3/1024/1024,$5)
}'

Вывод команды.








Для команды du в HP-UX тоже не предусмотрен human readable. Можно использовать так.

[root@tst var]# du -sk * | sort -n
0       X11
0       asx
0       empty
0       home
0       lost+found
0       news
0       nfs4
0       uucp
8       nfs
8       statmon
8       tombstones
112     run
112     yp
200     preserve
400     evm
800     spool
952     vx
1360    sam
24096   jail
32608   stm
62328   mail
464376  opt
1363072 tmp
4570744 adm
[root@tst var]#

Но лучше использовать такую конструкцию(взято здесь).

du -ks * | awk '
function human(x) {
    s="kMGTEPYZ";
    while (x>=1000 && length(s)>1)
        {x/=1024; s=substr(s,2)}
    return int(x+0.5) substr(s,1,1)
}
{gsub(/^[0-9]+/, human($1)); print}'


[root@tst var]# du -ks * | awk '
> function human(x) {
>     s="kMGTEPYZ";
>     while (x>=1000 && length(s)>1)
>         {x/=1024; s=substr(s,2)}
>     return int(x+0.5) substr(s,1,1)
> }
> {gsub(/^[0-9]+/, human($1)); print}'
0k      X11
4G      adm
0k      asx
0k      empty
400k    evm
0k      home
24M     jail
0k      lost+found
61M     mail
0k      news
8k      nfs
0k      nfs4
453M    opt
200k    preserve
112k    run
1M      sam
800k    spool
8k      statmon
32M     stm
1G      tmp
8k      tombstones
0k      uucp
952k    vx
112k    yp
[root@tst var]#