(2 Antworten)
Vor 7 Jahren geschlossen.
Ich habe du verwendet, um alle Ordner aufzulisten und nach Größe zu sortieren, die Ergebnisse summieren sich einfach nicht dazu, wie viel Speicherplatz verwendet wird (mit df). Es gibt ungefähr 20 G Diskrepanz, warum?
[[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
Akzeptierte Antwort:
Denn du
und df
verschiedene Dinge messen.
man du
sagt:
du – Schätzen Sie die Dateiplatznutzung (…) Fassen Sie die Festplattennutzung jeder DATEI zusammen , rekursiv für Verzeichnisse.
und man df
:
df – meldet die Speicherplatznutzung des Dateisystems
Dateisysteme haben Inode-Tabellen, Journale etc. die nicht durch du
zusammengefasst werden . Es ist nicht nur Linux-spezifisch, sondern UNIX-spezifisch (oder sogar UNIX-Dateisystem-spezifisch). Da UNIX-Prozesse Dateien für alles verwenden (ich vereinfache), d. h. zum Schreiben in Protokolldateien, könnte es in diesem Fall auch ein Problem mit offenen Dateideskriptoren geben, das zu unterschiedlichen du
führt und df
Ausgänge.