Löschen von Dateien in Abhängigkeit vom Modifikationsdatum

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

HEWeiss

Benutzer
Registriert
28. Mai 2015
Beiträge
25
Reaktionspunkte
0
Punkte
1
Ich habe im "Task scheduler" eine Aufgabe angelegt mit der Befehlszeile:
"find /volume1/.../record -type f -mtime +1 -exec rm {} \;"
Leider wird keine Datei gelöscht, auch keine die ein länger zurückliegendes Modifikationsdatum hat.
Wenn ich "-mtime +1" herausnehme, dann werden alle Dateien im Verzeichnis gelöscht.
Ich greife also auf das richtige Verzeichnis zu und der Löschbefehl arbeitet auch.

Der task bewirkt auch keine Fehlermeldung...

Hat jemand eine Idee, wo das Problem liegen könnte?
Danke für Hinweise!
 
Danke,

aber genau das dort Vorgeschlagene habe ich versucht - und bin eben wie oben beschrieben angestanden
 
Lass doch halt erstmal das " -exec rm {} \;" weg und lass dir die Dateien nur anzeigen. Dann spiel mit den Parametern von find herum wie z.B. hier beschrieben. Erst wenn die Ausgabe soweit passt, hängst du das " -exec rm {} \;" wieder dahinter.
Oder alternativ: du hängst erstmal "-exec ls -als {} \;" dahinter, dann siehst du auch gleich das Datum der Dateien, die gelöscht würden.
 
  • Like
Reaktionen: HEWeiss
find /volume1/test/ -mtime +8 -delete funktioniert ohne Probleme
 
  • Like
Reaktionen: HEWeiss
Lass doch halt erstmal das " -exec rm {} \;" weg und lass dir die Dateien nur anzeigen. Dann spiel mit den Parametern von find herum wie z.B. hier beschrieben. Erst wenn die Ausgabe soweit passt, hängst du das " -exec rm {} \;" wieder dahinter.
Oder alternativ: du hängst erstmal "-exec ls -als {} \;" dahinter, dann siehst du auch gleich das Datum der Dateien, die gelöscht würden.
Danke:
Ich habe das so probiert, indem ich das -mtime entfernt habe, dann wurden alle Dateien im Verzeichnis gelöscht.
Daraus habe ich geschlossen die Bedingung -mtime +1 wäre das Problem

find /volume1/test/ -mtime +8 -delete funktioniert ohne Probleme
Danke, aber leider nicht, siehe oben. Es liegt scheinbar an der Bedingung, nicht am Löschen selbst.
 
Das find ohne weitere Bedingungen alles findet, dürfte klar sein. "-mtime +8" filtert dann auf Objekte, die vor mehr als (+) 8 Tagen modifiziert (mtime) wurden. Wenn nichts gefunden wird, gibt es scheinbar keine Objekte für die das gilt. Hast du das mal geprüft?
Die 3 Zeiten eines Objekts (Access/Modify/Change) zeigt dir der Befehl "stat <Datei>", passend dazu kennt find die Optionen atime, mtime und ctime.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: luddi und HEWeiss
Danke jetzt läuft es - und leider weiß ich nicht warum...

Jedenfalls Danke für jeden Vorschlag.
 
  • Haha
Reaktionen: luddi
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat