Ich möchte einen nächtlichen Cron-Job ausführen, bei dem alle Dateien in einem Ordner gelöscht werden, auf die seit mindestens einer Woche nicht mehr zugegriffen wurde. Was ist der effizienteste Weg, dies in bash zu tun?
Ich möchte einen nächtlichen Cron-Job ausführen, bei dem alle Dateien in einem Ordner gelöscht werden, auf die seit mindestens einer Woche nicht mehr zugegriffen wurde. Was ist der effizienteste Weg, dies in bash zu tun?
Antworten:
Sie wollen das find
Werkzeug .
find folder -depth -type f -atime +7 -delete
(Dies wird löschen Sie alle Dateien ( nur Stammkunden , keine Rohre, spezielle Geräte, Verzeichnisse, symbolische Links) in den angegebenen Ordner und alle Unterverzeichnisse (rekursiv) , wo die letzte Zugriffszeit ist länger als 7 Tage vor.)
-type f
um sicherzustellen, dass nur Dateien und nicht ganze Verzeichnisse gelöscht werden.
Vielleicht möchten Sie herausfinden, tmpwatch
welche in einen Cron-Job eingefügt werden können. Sie müssen nicht selbst mitspielen find
. Bei RHEL liegt es in der tmpwatch
Drehzahl.
find
.
find
kann basierend auf atime filtern. Die "Korrektheit" von atime hängt zumindest von der Konfiguration ab (siehenoatime
).