Große Dateien finden - Fehlermeldungen

jrwn

Registered User
Hallo zusammen,
ich suche die großen Dateien in meinem V-Server. Da kommen Fehlermeldungen, für die ich eure Hilfe brauche.
Es handelt sich um eine ältere SUSE, die aber produktiv im Netz steht.
Wenn mir bitte jemand einen Tipp hat, wie ich das Linux Dateisystem wieder richten kann.

Code:
find / -type f -size +500M | xargs ls -lahS | mail -s "Grosse Dateien vServer [x] (+500M IP1)" webmaster@x[x].de

Auszug aus den Meldungen auf der Console putty:
find: Dateisystemschleife erkannt; "/var/named/chroot/var/named" ist ein Teil der Schleife "/var/named".
find: "/proc/8334/task/8334/fdinfo/5": Datei oder Verzeichnis nicht gefunden
find: "/proc/8334/fdinfo/5": Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf /var/www/vhosts/[x]/[xx].de/quixplorer/archive/Vorlage/01_A nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf pet[x].mp4 nicht möglich: Datei oder Verzeichnis nicht gefunden

(ca. 100 weitere Zeilen dieser Art)

Danke vorab.
Jürgen
 
Wenn mir bitte jemand einen Tipp hat, wie ich das Linux Dateisystem wieder richten kann.

Was ist denn genau kaputt?

Die ersten drei "Fehlermeldungen" kannst du ignorieren.
Einfach handelt es sich um einen Symlink o.ä. und einmal um das /proc/-Filesystem

Da es sich hierbei nur um ein pseudo-Filesystem handelt, welches nicht auf der Festplatte existiert, kann es durchaus vorkommen, dass während deinem "find"-Prozess, andere Prozesse beendet werden und diese somit nicht mehr "aufzufinden" sind.

-https://askubuntu.com/questions/475410/lot-of-file-not-found-when-using-sudo-find-type-s

Bezüglich den anderen beiden Fehlermeldungen.
Existieren die Verzeichnisse/Dateien wirklich nicht mehr?
Mal mit "cd" und "ls" geprüft?
 
Ok, die Ursache für die ls Fehlermeldungen ist gefunden:
Die Dateinamen enthalten Leerzeichen.

Grüße Jürgen
 
Für das Problem gibt es mehrere Lösungen. Eine davon ist diese:

Code:
find / -type f -size +500M [B][COLOR="Red"]-print0[/COLOR][/B] | xargs [B][COLOR="Red"]-0[/COLOR][/B] ls -lahS | mail ...

Mit -print0 wird find angewiesen, die Ergebnisse nicht mit Zeilenvorschüben zu trennen, sondern mit einem Null-Zeichen(numerischer Zeichenwert 0).

xargs wiederrum nutzt durch -0 das Null-Zeichen als Feldtrenner für die übergebenen Argumente anstatt Leerraumzeichen(Leerzeichen, Tabulator, Zeilenvorschub).

D. h. dadurch werden Störungen durch Leerraumzeichen(ggf. auch andere Sonderzeichen) verhindert.

--

Ansonsten brauchen /sys /proc /dev und /run nicht durchsucht werden. Das sind virtuelle Dateisysteme hinter denen sich Schnittstellen zum Kernel bzw. anderen Programmen verbergen.

Also vielleicht so etwas:

Code:
find [B][COLOR="Red"]$(find / -maxdepth 1 -type d | grep -vE '^/(proc|sys|dev|run|)$')[/COLOR][/B] \
   -type f -size +500M -print0 | xargs ...
 
Last edited by a moderator:
Code:
find / -type f \( -not -path /bin/\* -not -path /boot/\* -not -path /dev/\* -not -path /etc/\* -not -path /lib/\* -not -path /lib32/\* -not -path /lib64/\* -not -path /media/\* -not -path /mnt/\* -not -path /proc/\* -not -path /root/\* -not -path /run/\* -not -path /sbin/\* -not -path /srv/\* -not -path /sys/\* -not -path /tmp/\* -not -path /usr/\* -not -path /var/\* \) -size +1G 2>/dev/null
:eek:

Anstatt in / zu suchen, suchst du dort wo du die Dateien erwartest. Stell dir mal vor du hängst noch ein sehr großes Storage nach /mnt ein. Find würde dort dann auch rekursiv suchen. Völlig unnütz. Ressourcenverschwendung.

Basierend auf dem vorherigen Beispiel:
Code:
find /home/andre/Downloads/ /home/andre/Dokumente/ -type f -size +1G -print0 | xargs -0 ls -lahs | mail ...

Sucht in /home/andre/Downloads/ und /home/andre/Dokumente/ nach Dateien größer als 1GB.
 
Große Dateien tauchen manchmal jedoch auch dort auf, wo man sie nicht unbedingt erwartet - auch wenn sie das nicht sollten.
 
Last edited by a moderator:
Mit der "greystone-Lösung" bin ich sehr zufieden.

Code:
find $(find / -maxdepth 1 -type d | grep -vE '^/(proc|sys|dev|run|)$') \ -type f -size +500M -print0 | xargs -0 ls -lahS | mail -s "Grosse Dateien vServer (+500M IP007)" webmaster@....com

Die Mail ist 2 Sek. nach Aufruf da. Offensichtlich Überarbeitet sich der Web-Server (250 GB) nicht bei der Ausführung, insbesondere, wenn ich die großen Dateien alle paar Wochen mal suche.
Und es war wirklich ein unerwarteter Speicherort darunter.

Schönen Dank nochmals!
 
Back
Top