NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
DE

Linux-Befehle und Shell-Fähigkeiten

find: Die Linux-Suche, die alles erledigt

find ist der gefährlichste Befehl auf einem Produktionsserver, und genau deshalb verdient er Beherrschung. Es zählt, filtert und führt in einem Ausdruck aus, und jeder klassische „/var hier sind Drachen“-Vorfall geht auf eine Vorschau zurück, die jemand übersprungen hat. Die Gewohnheiten sind mechanisch: Gehen Sie zuerst mit -print oder -ls, stapeln Sie mit -exec ... +, leiten Sie -print0 an xargs -0 weiter und behandeln Sie -delete als Entscheidung im zweiten Durchgang, niemals als ersten Entwurf.

Kernpunkte

  • Filtern Sie nach Metadaten, nicht nur nach dem Namen: -type f, -mtime +30, -size +100M und -perm -o+w suchen nach den seltsamen Dateien, die sowohl von Namenskonventionen als auch von Altersberichten übersehen werden.
  • Sehen Sie sich jede destruktive Abfrage in der Vorschau an: Finden Sie zuerst /var/www/uploads -name 'core.*' -ls, tauschen Sie -ls gegen -delete erst aus, nachdem Sie die Liste tatsächlich gelesen haben; Bei der Vorschau handelt es sich um einen Sicherheitscheck, nicht um einen Vorschlag.
  • -exec cmd {} + stapelt Dateien in wenige Aufrufe und schlägt den \; bilden sich an großen Bäumen; Dieselbe Syntax ermöglicht „jede übereinstimmende Datei in einem Prozess mit RM“, ohne dass ein Argument-List-too-long-Fehler auftritt.
  • Standardmäßig nullsichere Ausgabe: find . -name '*.old' -print0 | xargs -0 rm -v; Einfache Pipes in XARGs sind ein bekanntes Datenverlustmuster, wenn ein Dateiname ein Leerzeichen enthält.
  • -xdev und -max Depth halten den Weg ehrlich: Sie verhindern, dass find Mounts und Snapshots folgt, was sowohl die Laufzeit als auch Ihre Annahmen über „dieses Verzeichnis“ rettet.
  • Zeitfenster sind präzise, ​​wenn genau gefragt wird: -mmin -1440 für die letzten 24 Stunden, -newermt '2026-01-01' für seit einem Datum, und denken Sie daran, -xtime bedeutet 'vor n vollen 24 Stunden', bevor Sie es in einem Ticket angeben.
  • Bewusst beschneiden: find . -path '*/node_modules' -prune -o -name '*.js' -print überspringt das eine Verzeichnis, das ansonsten in Größe und Zeit den Rest des Baums überwiegt.
  • Erwarten Sie Exits ungleich Null bei nicht lesbaren Verzeichnissen; stderr-Zeilen wie „Permission denied“ sind übersprungene Dateien, keine Daten, daher tolerieren Skripte entweder den Exit-Status von find oder überprüfen ihn explizit, anstatt saubere Spaziergänge anzunehmen.

Praxisnotiz

Unsere schlimmste find-delete-Geschichte begann mit einem nicht zitierten -name-Muster, das die zweite Shell stromaufwärts von find in drei Wörter erweiterte. Die Regel ist einfach: -print first, immer quoten und -delete never fügt einen Befehl bei der ersten Ausführung ein.

Häufige Fragen

Meine Suche hat Dateien gefunden, aber der Downstream-Befehl hat nichts bewirkt. Warum?

Fast immer Anführungszeichen oder leere Eingaben: Das Muster wurde von der Shell erweitert, bevor find es sah, oder xargs hat nichts erhalten. Zitieren Sie Muster und koppeln Sie jedes Mal -print0 mit xargs -0.

-delete oder rm nach find?

-delete ist direkt, schnell und gnadenlos; Es kann nicht mit -exec im selben Ausdruck gemischt werden. Führen Sie zuerst den passenden -print aus und lesen Sie ihn; das ist die ganze Disziplin.

Warum werden Druckberechtigungsfehler in Systemverzeichnissen gefunden?

Komponenten, die Sie nicht lesen können, geben Fehler an stderr aus und machen den Find-Exit ungleich Null; Filtern Sie mit 2>/dev/null für interaktiven Komfort und interpretieren Sie diese Fehler niemals als fehlende Dateien.

Wieder Unterschied zwischen -mtime und -ctime?

-mtime ist eine Inhaltsänderung, -ctime ist eine Metadatenänderung (Berechtigungen, Umbenennung, Anzahl der Hardlinks); ein chown oder ein move erhöht ctime, ohne mtime zu berühren, was genau einen Bericht pro Quartal durcheinander bringt.

Wie Kinetikatech bei linux-befehle und shell-fähigkeiten hilft

Das haben wir schon hundertfach gelöst: Die Befehle und Skriptgewohnheiten, die darüber entscheiden, ob ein Administrator einen Server betreibt oder ihn bekämpft: Suchen, Transformieren, Übertragen und Überwachen von Texten und Prozessen mit den Tools, die in jeder Basisinstallation enthalten sind. Mit Linux-Server-Sicherheit und Serververwaltung erhalten Sie den kompletten Kreislauf: Wir bewerten, wir setzen um, wir überwachen rund um die Uhr und wir reagieren innerhalb von 30 Minuten, wenn es darauf ankommt.

Mit einem Ingenieur sprechen

Serverproblem? Gehackte Website? Langsame Seite?

Kritische Störungen in 30 Minuten beantwortet — rund um die Uhr, 7 Tage die Woche.

Notfall-Support anfordern support@kinetikatech.com