Suche nach einem Skript zum Durchsuchen von Linux-Servern nach Dateien, die älter als x Tage sind und ein bestimmtes Benennungsschema aufweisen

Suche nach einem Skript zum Durchsuchen von Linux-Servern nach Dateien, die älter als x Tage sind und ein bestimmtes Benennungsschema aufweisen

Meine Firma hat eine Reihe von Linux-Servern, auf denen Benutzer Dateien speichern. Die Dateien folgen einem gemeinsamen Benennungsschema von #####,###,###, wobei die Nummern den für sie eindeutigen Feldern entsprechen. Sie sollten die Dateien nach 30 Tagen entfernen, aber das passiert nicht und aufgrund einer wachsenden Benutzergemeinschaft geht auf einigen Servern der Speicherplatz aus.

Kennt jemand da draußen eine Möglichkeit, wie ich einen Prozess skripten könnte, der alle Partitionen der Linux-Server nach Dateien mit dem oben genannten Benennungsschema durchsucht, die älter als 30 Tage sind, und diese in einen neuen Ordner verschiebt?

Dadurch würde das Aufräumen erheblich einfacher werden, da manche Benutzer Dateien auf mehreren Ebenen speichern und allein die Suche danach zu viel Zeit in Anspruch nimmt, ganz zu schweigen von der Entscheidung, ob die Dateien gelöscht werden können oder nicht.

Jede Hilfe wäre sehr willkommen!

Antwort1

Verwenden Sie dieBefehl „find“um die gewünschten Dateien zu erhalten. Sie können die -mtimeOption verwenden, um das Alter der Datei festzulegen. Sie können den regulären Ausdruck verwenden, \d{5},\d{3},\d{3}$um den Dateinamen abzugleichen. Verschieben Sie dann jede Datei an den gewünschten Ort.

So was:

find / -mtime +30 -regex '\d{5},\d{3},\d{3}$' -exec mv {} /path/to/destination/folder \;
  • Das Obige löst dies im Stammverzeichnis aus, was ziemlich beängstigend ist. Erwägen Sie, es auf die Verzeichnisse zu beschränken, die Sie benötigen.
  • Beachten Sie, dass dieses Muster nicht absolut eindeutig ist. Verwenden Sie es daher mit Vorsicht.
  • Optimieren Sie Ihren regulären AusdruckHier

verwandte Informationen