(2 odpovědi)
Uzavřeno před 7 lety.
Použil jsem du k vypsání všech složek a řazení podle velikosti, výsledky jednoduše neodpovídají tomu, kolik místa na disku je využito (pomocí df). Rozdíl je asi 20 G, proč?
[[email protected] lib]# du --max-depth=1 -h /| sort -n -r
310M /lib
123M /root
96K /dev
88M /etc
75G /
73G /var
30M /sbin
20M /boot
20K /tmp
18M /lib64
16K /mnt
16K /lost+found
12K /home
8.0K /srv
8.0K /selinux
8.0K /opt
8.0K /misc
8.0K /media
7.0M /bin
1.2G /usr
0 /sys
0 /proc
[[email protected] lib]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
298G 94G 189G 34% /
/dev/sda1 99M 26M 69M 28% /boot
tmpfs 2.0G 0 2.0G 0% /dev/shm
Přijatá odpověď:
To proto, že du a df měřit různé věci.
man du říká:
du – odhad využití místa v souboru (…) Shrňte použití disku pro každý SOUBOR , rekurzivně pro adresáře.
a man df :
df – hlásí využití místa na disku souborovým systémem
Souborové systémy mají tabulky inodů, deníky atd., které nejsou shrnuty pomocí du . Není to specifické pouze pro Linux, ale spíše specifické pro UNIX (nebo dokonce specifické pro souborový systém UNIX). Protože procesy UNIX používají soubory pro všechno (zjednodušuji), tj. pro zápis do souborů protokolu, může v tomto případě nastat také problém s otevřeným deskriptorem souboru způsobující různé du a df výstupy.