Dateien nach Zeitplan automatisch löschen

sonoio

Benutzer
Mitglied seit
22. November 2011
Beiträge
282
Punkte für Reaktionen
0
Punkte
0
Hallo, ich bin nicht ganz sicher, in welches Unterforum meine Frage gehört ...

Ich habe einen Ordner, in welchen mehrere IP-Kameras ihre Aufnahmen ablegen. Das ganze läuft nicht über die Surveillance-Station. Jetzt würde ich gern ein Skript haben, welches mir automatisch die Dateien löscht, die älter sind als 7 Tage. Möglichst auch solche in Unterordnern. Leider habe ich davon keine Ahnung, wo und vor allem welche Befehle man auf der Kommandozeile eingeben muss, kann mir jemand auf die Sprünge helfen?

Besten Dank, SONOiO
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.902
Punkte für Reaktionen
0
Punkte
0
suche mal das Stichwort 'find' - am besten im Unterforum 'Station Modding' - das gibt es schon ein paar Lösungsideen - ev. auch mal in unserem Wiki suchen ... kann dir leider nicht besser helfen mit konkreten Vorschlägen, weil ich hab die Surveillance-Station nicht aktiv laufen

Itari
 

sonoio

Benutzer
Mitglied seit
22. November 2011
Beiträge
282
Punkte für Reaktionen
0
Punkte
0
danke für den Tipp. Allerdings geht es ja gerade NICHT um die Surveillance-Station, sondern "nur" darum, bestimmte Dateien, die älter sind als sieben Tage, automatisch zu löschen. Also ein cron-job, der jede Nacht ohne Rückfrage eine Auswahl von Dateien löscht ...
SONOiO
 

sonoio

Benutzer
Mitglied seit
22. November 2011
Beiträge
282
Punkte für Reaktionen
0
Punkte
0
Hallo, ich schiebe meine Frage nochmal nach oben, weil ich leider noch nicht weitergekommen bin. Hat noch jemand einen Vorschlag für mich?
Danke, SONOiO
 

xabano

Benutzer
Mitglied seit
17. August 2008
Beiträge
409
Punkte für Reaktionen
0
Punkte
0
Wie itari schon geschrieben hat, das Kommando find löst dein Problem:
Rich (BBCode):
find /PFAD/ZUM/VERZEICHNIS -atime +7 -type f -delete
löscht alle Dateien im VERZEICHNIS (und allen Unterverzeichnissen), die älter als 7 Tage sind.

ACHTUNG: Teste zuerst ohne -delete, um sicherzustellen, dass tatsächlich die gewünschten Dateien gefunden werden. Delete löscht ohne nachzufragen.
 

Kohjinsha

Benutzer
Mitglied seit
26. Februar 2013
Beiträge
89
Punkte für Reaktionen
0
Punkte
0
Hallo xabano,
danke für die Lösung;
nach Umstellen von "root" auf "admin" läufts dann auch!
Allerdings werden nur die Dateien - jedoch keine (auch leeren) Ordner gelöscht.
Für mich wäre perfekt, er würde einfach alle Dateien/Ordner in einem Ordner löschen - ganz gnadenlos und radikal, egal ob leer oder nicht :).
Gibt's dafür auch eine Lösung?
Danke!
 

xabano

Benutzer
Mitglied seit
17. August 2008
Beiträge
409
Punkte für Reaktionen
0
Punkte
0
Auch das geht. Die Option -type f bedeutet, dass nur nach Files gesucht wird. Lass diese Option weg, dann wird auch nach Verzeichnissen gesucht und diese werden mit -delete auch gelöscht.
 

Kohjinsha

Benutzer
Mitglied seit
26. Februar 2013
Beiträge
89
Punkte für Reaktionen
0
Punkte
0
...oh ja und wie gelöscht wird :)
(habs ohne -atime und -type getestet)
Danke!
 

sonoio

Benutzer
Mitglied seit
22. November 2011
Beiträge
282
Punkte für Reaktionen
0
Punkte
0
@ xabano: Oh, sorry, ich war damals so begeistert, dass es genauso geklappt hat, wie ich mir das vorgestellt habe, dass ich völlig vergessen habe, mich für die Hilfe zu bedanken!!! :)
SONOiO
 

Kohjinsha

Benutzer
Mitglied seit
26. Februar 2013
Beiträge
89
Punkte für Reaktionen
0
Punkte
0
Hi nochmal; musste zwischenzeitlich mein "Projekt" unterbrechen, daher eine Frage:
Ich würde den Befehl wie folgt nutzen:

find /volumeUSB1/usbshare/Xyz -atime +22 -delete
Bedeutet das, dass alle Daten/Unterordner innerhalb des angegebenen Pfades (also innerhalb XYZ) gelöscht werden, sobald diese älter als 22 Tage sind? Zugespitzt ausgedrückt: Kämen keine neuen Dateien hinzu gebe es ab dem 23. Tag nichts mehr im genannten Pfad?

Danke - es ist so schwer zu testen, weil die Dateiattribute sich ja kaum verstellen lassen....
 

xabano

Benutzer
Mitglied seit
17. August 2008
Beiträge
409
Punkte für Reaktionen
0
Punkte
0
es ist so schwer zu testen, weil die Dateiattribute sich ja kaum verstellen lassen....
Das ist gar nicht so schwierig. Touch ist dein Freund. Damit kann man Dummy-Dateien mit gewünschtem Datum erstellen (sehr hilfreich für solche Tests) oder auch das Datum von vorhandenen Dateien ändern.
 

Kohjinsha

Benutzer
Mitglied seit
26. Februar 2013
Beiträge
89
Punkte für Reaktionen
0
Punkte
0
Hallo xabano,
danke für Deinen Tipp, der eigentlich auch Licht ins Dunkle gebracht hätte.

Nur leider funktionieren bei mir die einfachsten Befehle mit "Touch" nicht - es kommt immer entweder "Invalid Option -- d" oder "Invalid Option -- t", wenn ich z.B. einfach "touch -t 200701310846.26 test.jpg" eingebe (habe quasi alles ausprobiert was eine Suchmaschine an Beispielbefehlen findet ;)).

Ich weiß nicht warum der einfach Befehl "touch -d 19800808 test.jpg" bei einer Datei names JPG im Ordner nicht funktioniert. Liegt wohl an meiner Unerfahrenheit im Umgang mit Telnet/Kommandozeilenbefehlen ... :(
 

xabano

Benutzer
Mitglied seit
17. August 2008
Beiträge
409
Punkte für Reaktionen
0
Punkte
0
Das kann so auch nicht funktionieren.

Sorry, ich habe nicht daran gedacht, dass die ausgelieferte Version von touch diese Optionen nicht unterstützt. Dafür muss man über ipkg das Paket coreutils installieren. Darin ist auch die vollständige Version von touch enthalten.
 

Kohjinsha

Benutzer
Mitglied seit
26. Februar 2013
Beiträge
89
Punkte für Reaktionen
0
Punkte
0
Hi,
also nach einigem herumfummeln habe ich jetzt quasi alles mit dem Touch Befehl machen können (nur nicht das reine Erstelldatum ändern ;)). War insofern aber auch nicht wichtig, als ich zwei Tage alte Dateien im Ordner hatte mit denen ich testen konnte - nun habe ich den Grund für meine doch berechtigten Zweifel gefunden:
ich benötige die Option "-mtime" und nicht "-atime" die richtige ist.

Deshalb klappt jetzt tatsächlich alles und ich bedanke mich :)
 

SHentschke

Benutzer
Mitglied seit
21. April 2015
Beiträge
1
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,
ich fummle jetzt schon ewig rum und bekomme es nicht hin:
Ich möchte nach 30 Tagen alte Aufnahmen meiner Netatmo-Überwachungskameras löschen.

Befehle:
find /volume1/WebCam -atime +30
find /volume1/WebCam -atime +30 -delete

Benutzer: admin (Benutzer ist aktiv und hat Zugriff auf die Verzeichnisse)

Ausgabe per Mail:
Sehr geehrter Benutzer,
Aufgabenplaner hat eine geplante Aufgabe abgeschlossen.
Aufgabe: Loeschen alte Aufnahmen der WebCams
Startzeit: Mon, 12 Mar 2018 08:56:59 GMT
Stoppzeit: Mon, 12 Mar 2018 08:57:02 GMT
Aktueller Status: 0
Standardausgabe/Fehler:
Mit freundlichen Grüßen
Synology RackStation

Obwohl Daten seit dem 15.01.2017 auf den Verzeichnissen liegen wir dnichts gelöscht.
Bildschirmfoto 2018-03-12 um 09.04.42.jpg
 

xabano

Benutzer
Mitglied seit
17. August 2008
Beiträge
409
Punkte für Reaktionen
0
Punkte
0
-atime prüft nach dem letzten Dateizugriff (access time). Du suchst vermutlich nach -mtime (modification time).
Aber Achtung: Mit deinem Befehl werden auch Verzeichnisse (inkl. Inhalt) gelöscht. Wenn nur Dateien gelöscht werden sollen muss der Parameter -f verwendet werden.
Ich würde erstmal auf der Konsole ohne den Parameter -delete testen, ob die richtigen Dateien gefunden werden. -delete löscht erbarmungslos ohne nachzufragen.
 

quitschibo

Benutzer
Mitglied seit
25. August 2013
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
hallo zusammen,
ich hoffe, hier liest noch jemand mit.
ich habe ein ähnliches problem auf meiner ds418play.
ich will alte aufnahmen meiner netatmo (ist als eigener nutzer mit zugriffsrechten angelegt) aus dem ordner löschen. um nichts kaputt zumachen, will ich sie ersteinmal finden, aber das script im aufgabenplaner findet nichts.
es ist doch richtig, dass ich in den ergebnissen die gefundenen ordner angezeigt bekommen müsste, oder?
das script lautet "find /volume1/netatmo/eingang -mtime +1".
egal, ob ich unter den einstellungen den benutzer netatmo, admin oder root wähle, er findet nichts.
weiß jemand rat?
Bildschirmfoto 2019-02-18 um 11.21.55.jpg
Bildschirmfoto 2019-02-18 um 11.27.06.jpg

ds418play
DSM 6.2.1-23824 Update 4
4 x WD60EFRX
macos mojave
 
Zuletzt bearbeitet:

mijung

Benutzer
Mitglied seit
28. Juni 2019
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hi, wenn du die Netatmo als eigenen Nutzer angelegt hast, dann hat der Nutzer ein Home Verzeichnis!?!

Rich (BBCode):
 find /volume1/homes/netatmo/eingang -mtime +1
ggf?
 

d_a_n_e

Benutzer
Mitglied seit
24. Januar 2012
Beiträge
29
Punkte für Reaktionen
0
Punkte
0
Guten Morgen,
auch ich kämpfe leider seit gut 2 Wochen damit und bekomme es nicht zum laufen. Gefühlt habe ich schon alles versucht, einmal ging es auch, näcsten Tag schon nicht mehr... Obwohl ich nichts verändert habe... Ich nutze Reolink Kamera´s, die alle einzeln als User angelegt wurden. Dazu habe ich entsprechende Ordner erstellt in die sie per FTP schreiben und lesen können. Das abelegen der Dateien klappt auch, nur das löschen nicht... meine ersten versuche waren -mtime und type f, klappte nicht. Jetzt probiere ich gerade -atime --> auch nicht besser. Als benutzer nahm ich neben root schon die kamera selbst, und admin --> auch kein erfolg.
Aktuell siehst es gerae so aus:
Bei User Eingang oder Admin bekommt ich die antwort Bild 1-3. Aber an den Dateien oder im Verzeichniss ändert sich nichts.
also User wieder root dabei bekomme ich Bild 4/5, aber im Verzeichniss bleiben die Dateien stehen, wird also nicht gelöscht.
erste Zeile im skript gelöscht passiert Bild 6/7
aber wie auf Bild 8 zu sehen, der Odner bleibt unverändert...
Ich hoffe es hat noch jemand einen Tipp für mich??
Viele Grüße
Dane


1.JPG
2.JPG
3.JPG
4.JPG
5.JPG
6.JPG
7.JPG
8.JPG
 

AndiHeitzer

Benutzer
Mitglied seit
30. Juni 2015
Beiträge
1.885
Punkte für Reaktionen
17
Punkte
64
Ich werfe mal die Gebetsmühle an:

Parameter 'atime' mit 'mtime' vergleichen und sinnvoll nutzen.

Im letzten Bild die Spalte 'Änderungsdatum' steht nun für welchen Parameter?