
Ich verwende einen Linux-Server, den wir als freigegebenes Samba-Laufwerk verwenden. Seit gestern wird eines der freigegebenen Laufwerke plötzlich immer größer (~ 100 MB alle zehn Minuten). Auf diesem freigegebenen Laufwerk befinden sich zu viele Ordner und Unterordner. Jetzt ist auf dem freigegebenen Laufwerk nicht mehr genügend Speicherplatz vorhanden.
Bitte helfen Sie mir, herauszufinden, welcher Ordner größer wird. Ich habe den folgenden Befehl ausprobiert, um die Größe der Unterverzeichnisse des freigegebenen Laufwerks zu ermitteln. Aber ich muss die Ausgabe vergleichen und es dauert zu lange, sie herauszufinden, wenn ich kein Glück habe.
du -sh --maxdepth=1
Können Sie mir bitte einen Tipp geben, ob es eine andere Möglichkeit gibt, die Datentransaktion in diesem Dateisystem zu finden?
Antwort1
Suchen Sie mit dem folgenden Befehl nach kürzlich geänderten Dateien. Es werden die Dateien angezeigt, die in den letzten zehn Minuten im Ordner geändert wurden. Erhöhen Sie den Parameter -mmin -10, um zu sehen, wie der Ordner im Laufe der Zeit geändert wurde. SieheMann findenund suchen-mZeitUnd-mminfür alle Einzelheiten:
sudo find FOLDER -xdev -type f -mmin -10 -ls
Eine andere Situation ist, wenn gelöschte Dateien immer noch Speicherplatz belegen, der nicht wiederhergestellt werden kann, weil Prozesse sie noch verwenden. Identifizieren Sie in diesem Fall die Prozesse, die gelöschte Dateien verwenden, und beenden Sie sie, damit der Speicherplatz wiederhergestellt werden kann:
sudo lsof | grep deleted
Die Suche nach der Größe hilft hier nicht weiter, da viele kleine Dateien genauso viel oder mehr Speicherplatz beanspruchen können als eine große Datei. Überprüfen Sie auch die Inode-Nummern. So ermitteln Sie außerdem die Größe aller Ordner in FOLDER:
sudo find FOLDER -xdev -type d | xargs -I DIR du -sm DIR | sort -nk1
Antwort2
Sie können iotop
ein Tool ausprobieren, das Ihnen die I/O-Nutzung nach Prozessen anzeigt (mit anderen Worten, welche Top-Prozesse Ihre Festplatte verwenden), sodass Sie verfolgen können, welcher Prozess für den Speicherplatzverbrauch verantwortlich ist. Eine andere Möglichkeit ist die Verwendung von inotify
(part of inotify-tools
), das Verzeichnisse auf Änderungen überwachen kann.
Oder verwenden Sie es einfach du
wie folgt.
Definieren Sie die folgenden Aliase:
alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'
Gehen Sie dann zu einem verdächtigen Ordner und führen Sie es aus, big
um die größten Dateien und Verzeichnisse im aktuellen Verzeichnis anzuzeigen. Oder führen Sie es aus, big-files
um die größten Dateien im aktuellen Ordner rekursiv anzuzeigen.
Hinweis: Damit es unter OSX/BSD ordnungsgemäß funktioniert (da
sort
es nicht über verfügt-h
), installieren Sie essort
voncoreutils
oder entfernen Sie-h
es vonls
und verwenden Siesort -nr
stattdessen.
Antwort3
Normalerweise verwende ich es ncdu
, um die Festplattenspeichernutzung zu untersuchen. Wenn Ihr immer größer werdender Ordner Ihr System oder den NCDU-Scan nicht blockiert, sollten Sie in der Lage sein, herauszufinden, welche Ordner ungewöhnlich groß erscheinen.