Die Festplatte ist voll, kann jedoch keine großen Dateien oder Ordner finden


20

Der Ubuntu-Server zeigt mir, dass ich fast alle Festplatten benutze:

Usage of /:   95.5% of 118.12GB

Und ich versuche, große Ordner und Dateien zu finden, und führe ncdu aus:

ncdu 1.8 ~ Use the arrow keys to navigate, press ? for help                                                                                                                                                 
--- / ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    5.5GiB [##########] /root                                                                                                                                                                               
    2.3GiB [####      ] /var
  628.6MiB [#         ] /usr
  209.9MiB [          ] /lib
   28.2MiB [          ] /boot
    8.6MiB [          ] /bin
    7.7MiB [          ] /sbin
    6.6MiB [          ] /etc
  208.0KiB [          ] /run
  112.0KiB [          ] /tmp
   48.0KiB [          ] /opt
e  16.0KiB [          ] /lost+found
    8.0KiB [          ] /dev
    8.0KiB [          ] /media
    4.0KiB [          ] /lib64
e   4.0KiB [          ] /srv
e   4.0KiB [          ] /selinux
e   4.0KiB [          ] /mnt
e   4.0KiB [          ] /home
    0.0  B [          ] /proc
    0.0  B [          ] /sys
@   0.0  B [          ]  initrd.img
@   0.0  B [          ]  vmlinuz

Entsprechend ncdubenutze ich ungefähr 10 GiBvon 128 GiB- es geht um 10 %. Widerspruch.

Wie reinige ich meine, ubutntu serverohne neu zu starten?

Ich dachte das ncdulüge und benutzte andere Apps um große Dateien und Ordner zu finden. Alle zeigen das gleiche Ergebnis wie ncdu.

Und df -hBefehl zeigt, dass die Festplatte voll ist.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda       119G  113G     0 100% /
udev            2.0G  8.0K  2.0G   1% /dev
tmpfs           788M  212K  788M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm

Aktualisieren

sudo du -sch /* Ergebnis:

/# sudo du -sch /*
8.7M    /bin
29M /boot
8.0K    /dev
6.6M    /etc
4.0K    /home
0   /initrd.img
210M    /lib
4.0K    /lib64
16K /lost+found
8.0K    /media
4.0K    /mnt
48K /opt
du: cannot access `/proc/4470/task/4470/fd/4': No such file or directory
du: cannot access `/proc/4470/task/4470/fdinfo/4': No such file or directory
du: cannot access `/proc/4470/fd/4': No such file or directory
du: cannot access `/proc/4470/fdinfo/4': No such file or directory
0   /proc
5.0G    /root
212K    /run
7.8M    /sbin
4.0K    /selinux
4.0K    /srv
0   /sys
112K    /tmp
629M    /usr
2.3G    /var
0   /vmlinuz
8.1G    total

8.1G total wie immer. Aber ich sehe cannot accessReihen, vielleicht ein Problem wegen ihnen.

Dann habe ich den größten Ordner eingecheckt /. Es ist /root:

/# sudo du -sch /root/*
96K /root/Downloads
2.5G    /root/Dropbox
36K /root/nohup.out
4.0K    /root/npm-debug.log
4.0K    /root/readonly
980K    /root/redis-2.6.16.tar.gz
228M    /root/tmp
2.7G    total

Nur ein Gedanke: Überprüfen Sie den Inhalt von / var / log /, um festzustellen, ob die Anzahl der Protokolle erheblich gestiegen ist.
Mordoc

/ var / log ist ungefähr 2 GiB. Es ist in Ordnung
Maxim Yefremov

1
Versuchen Sie herauszufinden du -sch /*, welche Stammverzeichnisse den meisten Speicherplatz belegen, und steigen Sie von dort zu den Orten ab, die den meisten Speicherplatz belegen.
DopeGhoti

@ DopeGhoti Ich habe versucht, aber sah das gleiche über 8.1 GiBvoll (fügte dies zu aktualisieren). Kann nicht herausfinden, wo der Rest ist100 GiB
Maxim Yefremov

2
Ich weiß, dass du nicht willst, aber in die Kugel beißen und neu starten.
Douggro

Antworten:


13

Ich bin auf unseren Labormaschinen auf dasselbe Problem gestoßen und habe diesen Befehl verwendet

du -sch .[!.]* * |sort -h

Ich konnte versteckte Dateien wie in den Mülleimern der Benutzer finden, die sie noch nicht gelöscht hatten.

Verdanke dich hier, wo ich diese Antwort ursprünglich gefunden habe.


Erstaunliche Lösung!
AivanF.

5

Suchen Sie nach gelöschten Dateien, die noch von einem Prozess geöffnet sind:
sudo lsof | grep deleted | less

Das zeigt die PID und den Dateideskriptor. Ich hatte genau dieses Problem auf einem Server, nichts ncduaußer dem Auffüllen der Festplatte. Es stellte sich heraus, dass es sich um einen nächtlichen Prozess handelte, bei dem Dateien auf eine gemountete Samba-Freigabe verschoben wurden und das Dateihandle anscheinend gelegentlich nicht richtig geschlossen wurde.

Wenn Sie gelöschte Dateien finden und diese bereinigen möchten, ist ein Neustart wahrscheinlich am einfachsten, wenn dies akzeptabel ist. Oder Sie können versuchen, den Prozess zu beenden. Wenn Sie sicher sind, dass sie nicht verwendet werden, können Sie sie manuell auf Null setzen.
> /proc/14487/fd/12


Das war mein Problem. Tomcat hielt eine gelöschte 80-GB-Datei. Ein Neustart genügte, um das Problem zu beheben.
AFP_555,

Wie kann ich sie löschen, wenn der Befehl "Neustart" nicht ausreicht?
funkeln

4

Der folgende Befehl zeigt die Festplattenauslastung für das Verzeichnis / home mit --max-depth = 1 an

user@linux:~$ sudo du -h -d 1 /

2

Stellen Sie sicher, dass Sie Ihre Datenträger-Bereitstellungen überprüfen. Keine der Lösungen, die ich hier gesehen habe, kann den Speicherplatz identifizieren, der von einem Ordner belegt wird, über dem sich ein Mount befindet.


Ich denke, dies könnte mein Problem sein
Eliethesaiyan


Überprüfen Sie im Allgemeinen Ihre vorhandenen Bereitstellungen mit mountund fügen Sie dann eine zweite Bereitstellung für jedes der Verzeichnisse hinzu, über denen Bereitstellungen platziert sind. Dann können Sie normale Datenträger-Tools wie duauf dem neu erstellten Mount verwenden, um festzustellen, ob dies der Schuldige ist.
Rich Remer

1

Wir hatten das gleiche Problem und es stellte sich heraus, dass es sich um Docker-Images handelte, die unter var / lib / docker gespeichert wurden

ncdu listet diese nicht auf, da sie für Benutzer nicht sichtbar sind. Selbst das Ausführen von ncdu unter sudo hilft nicht.

Dieser Befehl löscht alle vorhandenen Docker-Images ...

docker rmi $(docker images -a -q)


Gleiches Thema hier. In der Tat docker system prunewar nicht einmal alles zu finden. Dieser Befehl (der vor dem Löschen des Dockersystems ausgeführt wurde) erledigt den Trick.
Jscharf

1
vor kurzem haben wir festgestellt, dass docker system prune -a -fdas viel gründlicher ist
Baldy

0

Sie können den nächsten Befehl ausführen, um die 10 größten Dateien zu finden:

find / -type f -printf '%s %p\n' 2>&1 
     | grep -v 'Permission denied' 
     | sort -nr 
     | head -10
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.