Suche nach Dateizeitstempel
Unix/Linux-Dateisysteme haben drei Arten von Zeitstempeln für jede Datei. Sie lauten wie folgt:
- Zugriffszeit (-atime) :Der Zeitstempel des letzten Zugriffs auf die Datei.
- Änderungszeit (-mtime) :Der Zeitstempel der letzten Änderung der Datei.
- Zeit ändern (-ctime) :Der Zeitstempel, wann die Metadaten für eine Datei (z. B. Berechtigungen oder Eigentümerschaft) zuletzt geändert wurden.
Dateien suchen und löschen, die älter als 7 Tage sind
Nehmen wir ein Beispiel, bei dem wir Dateien finden und löschen, die älter als 7 Tage sind. Wir verwenden die Option „-mtime ” des Find-Befehls dafür.
1. Holen Sie sich eine Liste der Dateien mit dem Befehl find wie folgt:
# find /path_to_directory -mtime +7 -type f -exec ls {}\;
2. Wenn die Dateinamen mit einem bestimmten Muster beginnen, filtern Sie es wie folgt:
# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec ls {}\;
3. Nachdem Sie die Ausgabe überprüft und bestätigt haben, gehen Sie zum Entfernungsskript (es ist sehr WICHTIG), da es sonst zu einem unwiederbringlichen Datenverlust kommt.
# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {}\;
4. Wenn dies auf einem Remote-Server über einen Cron-Job erfolgen und die Dateinamen gelöschter Dateien protokolliert werden müssen, verwenden Sie den folgenden Befehl
# ssh user@remote_ip "find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {} \; >> /tmp/backup_deletion`date +%Y%m%d`.log 2>&1"
Schlussfolgerung
Die -mtime Parameter sucht nach Dateien basierend auf der Änderungszeit; -ctime sucht basierend auf der Änderungszeit. Die Nutzungszeit von -atime, -mtime und -ctime, gemessen in Tagen. Der Befehl find unterstützt auch Optionen, die in Minuten gemessen werden. Diese lauten wie folgt:
- -amin (Zugriffszeit)
- -mmin (Änderungszeit)
- -cmin (Zeit ändern)
Um beispielsweise alle Dateien zu drucken, deren Zugriffszeit älter als sieben Minuten ist, verwenden Sie den folgenden Befehl:
# find . -type f -amin +7 -print
-neuere Option
Die Option -newer gibt eine Referenzdatei mit einer Änderungszeit an, die verwendet wird, um Dateien auszuwählen, die vor der Referenzdatei geändert wurden.
Finden Sie alle Dateien, die vor kurzem geändert wurden als die Datei file.txt:
# find . -type f -newer file.txt -print