Wo ist mein Speicherplatz?

542
dustin.b

Vor kurzem erreichte mein Speicherplatz die 98% -Marke, und ich habe versucht, den Grund dafür herauszufinden. Mein System besteht aus zwei Festplatten: einer ssd / dev / sda und einer Speicherfestplatte / dev / sdb.

Mein Linux ist installiert /dev/sda2und verfügt über 98% Festplattenspeicher, und die Festplatte ist unter gemountet /home. Ich habe versucht, die Dateigröße unter / mit zu finden

du -h --max-depth=1 /  260M /root 0 /proc 8,0K /storageImage 598M /opt 12K /srv 0 /sys 84K /dev 8,4G /usr 35M /boot 236G /run  12K /mnt  4,0K /media  12K /tmp  279G /home  17M /etc  642M /var  16K /lost+found  524G / 524G insgesamt 

Hat /usrnur eine signifikante Größe von ~ 9G. Ich verwende arch (systemd) deshalb ist der riesige Laufordner / media -> dort /run/media.

Aber dfzeigt mir das:

df Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf /dev/sda2 58G 54G 1,2G 98% / dev 7,8G 0 7,8G 0% /dev run 7,8G 796K 7,8G 1% /run tmpfs 7,8G 32M 7,8G 1% /dev/shm tmpfs 7,8G 0 7,8G 0% /sys/fs/cgroup tmpfs 7,8G 24K 7,8G 1% /tmp /dev/sdb1 362G 236G 108G 69% /home/dustin/opt tmpfs 1,6G 8,0K 1,6G 1% /run/user/1000 

Wo ist mein Speicherplatz?

Edit: Danke für den Hinweis auf Baobab. Anderes System, aber ähnliche Konfiguration

Baobab

Wie man sehen kann, gibt es 12G für /usrund 4G für /vardie Summe von bis zu 16G, dusagt aber 49G.

df Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf /dev/sda6 64G 49G 12G 81% / dev 3,9G 0 3,9G 0% /dev run 3,9G 996K 3,9G 1% /run tmpfs 3,9G 143M 3,7G 4% /dev/shm tmpfs 3,9G 0 3,9G 0% /sys/fs/cgroup tmpfs 3,9G 1,1M 3,9G 1% /tmp /dev/sdb2 1,1T 716G 284G 72% /home/naikon/opt tmpfs 784M 20K 784M 1% /run/user/1000 

Was verbraucht 33 GB Speicherplatz, der von baobab oder df nicht gefunden wurde? Ich kann den Befehl "find" nicht wie vorgeschlagen verwenden. Der Bildschirm ist mit Warnungen blockiert.

0

2 Antworten auf die Frage

1
Jan

Der einfachste Weg, das herauszufinden, wäre:

Befehlszeile

So finden Sie die größten 10 Dateien (Linux / Bash):

find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

So finden Sie die größten 10 Verzeichnisse:

find . -type d -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

Der einzige Unterschied ist -type .

Quelle für die Befehlszeile

0
Hannu

Ein bisschen vereinfacht ... Beginnen Sie in ./(Ersetzen mit /, um systemweit größte Dateien zu erhalten)

find ./ -type f> FILES -printf "% 016s% p \ n"; sort -rn DATEIEN | Kopf -n 50 

oder wenn Sie nicht möchten, dass sich die Liste FILESaufhält ... dann:

find ./ -type f -printf "% 016s% p \ n" | sort -rn | Kopf -n 50 
Scheint, als ob die> FILES` anderswo hingehört? Volker Siegel vor 10 Jahren 0
Hängt davon ab. Wenn Sie sich die Liste der Dateien (FILES) genauer ansehen möchten, ist dies in Ordnung. Hannu vor 10 Jahren 0
Ich habe es versucht. In der Tat verhält es sich wie eine normale Weiterleitung am Ende der Zeile - oder? Verwirrt ... Wie und warum ist es möglich, eine Umleitung in der Befehlszeile zwischen Argumenten vorzunehmen? und was ist der Vorteil gegenüber der Weiterleitung am Ende der Zeile? (Ich gehe davon aus, dass `DATEI` nicht von` find` behandelt wird, oder?) Volker Siegel vor 10 Jahren 0
Eigentlich sind dies nette Fragen, die Sie posten können. Also lass mich einfach wissen, ob ich total aus bin ... Volker Siegel vor 10 Jahren 0
In der ersten Version bewirkt ";", als ob Sie zwei Zeilen mit "Enter" eingegeben hätten. Hannu vor 10 Jahren 0
... und in der Tat wird die Dateiumleitung von der Shell eingerichtet, `>` gefolgt von einem Dateinamen (oder Gerätenamen) führt zum normalen Drucken. www.tldp.org enthält ein paar bash-Programmierhandbücher. Hör zu. Hannu vor 10 Jahren 0
Alles, was Sie sagen, ist wahr und völlig normal. Was mich verwirrt, ist, dass der `-printf"% 016s% p \ n "` nach der Umleitung ein Befehlszeilenargument von "find" ist und von find verwendet wird, da es die Ausgabe in "FILE" beeinflusst. Es ist keine Shell-Ebene "printf", es ist ein Fund "-printf". Seltsam. Volker Siegel vor 10 Jahren 0
`man find` - um zu sehen, was" find "als Argument benötigt, ist" -printf "eine Option. Die angezeigte Zeichenfolge hinter -printf gibt an, was und wie gedruckt werden soll. `%` Parameterdefinition startet, `0` = führende Nullen,` 16`-Zeichen breit, `s`-Größe in Bytes,`% p` = Pfad in "Normalform" (keine Tricks), `\ n` ein Zeilenvorschub - das ist nicht automatisch. Hannu vor 10 Jahren 0
Sicher, ich kenne `-printf` ziemlich gut, und auch die` printf` als Shellbuildin und als `/ usr / bin / printf`. Der Punkt war: Es ist ** nach ** der Umleitung, und ich nahm an, dass eine Umleitung die Liste der Befehlszeilenargumente beenden würde. Bis zur nächsten Zeile oder bis zum nächsten `;`. Volker Siegel vor 10 Jahren 0
Ich habe einen minimalen Test mit "Echo" gemacht. Es funktioniert in der Tat nur, wenn eine Umleitung mit den Argumenten durchsetzt ist. Ich ** sooo ** habe das nicht erwartet ... Aber der Beweis ist sehr direkt: `$ echo ab> f1 cde`` $ cat f1` `abcde` Volker Siegel vor 10 Jahren 0