Shell Datei finden >30 Tage

iceview

Lieutenant
Registriert
Jan. 2008
Beiträge
714
Hallo zusammen,

ich habe in einem Shell Script eine Sicherung laufen. Hier wird jede Stunde eine Datei in ein Verzeichnis geschrieben.
Das Skript prüft nach, ob vor dem kopieren dort Daten älter als 30 Tage alt sind und löscht diese dann.

Code:
find $BACKUP_DIR -type f -daystart -mtime +30 -delete

--> Resultat von heute ist, dass dort noch Daten vom 24.02 liegen, also älter als 30 Tage.

Wenn ich mit find -type f -ctime 30 -ls prüfe --> keine Ausgabe, jedoch mit find -type f -daystart -cmin +43200 -ls bekomme ich die Dateien >30 Tage aufgelistet.

Was mache ich falsch?

Danke!
 
Zuletzt bearbeitet:
Ja die Option kenne ich... aber ich will ja nicht via logrotate die Dateien löschen, sondern in einem Backup Script. Ich wunder mich, dass der Befehl nichts als Rückgabe bringt...

Per Logrotate würde ich nicht machen, da die Netzlaufwerke nur in dem Moment bei mir gemountet sind, wenn die Datei dorthin geschrieben wird. Logrotate wird ja im cron daily momentan ausgeführt. Das müsste ich ja dann noch wieder zusätzlich anpassen.
 
Ja mein Vorgänger sollte da recht haben, der Februar hat nur 28 Tage, bis heute sinds genau 30, d.h. dein Script löscht die erst morgen.
 
Zurück
Oben