Bilddateien automatisch nach x Tagen löschen?

Status
Für weitere Antworten geschlossen.

Mapple

Benutzer
Mitglied seit
04. Jun 2012
Beiträge
66
Punkte für Reaktionen
0
Punkte
6
Hallo zusammen,

wie kann ich Bilddateien automatisch nach x Tagen löschen?

Hintergrund: Ich nehme mit meiner DS und der Anwendung SS 24/7 mit 10 Kameras auf. Parallel zum Videostream schicke ich von den Kameras per FTP Bilddateien bei Bewegungserkennung in den jeweiligen Kameraordner der DS.
Beispielpfad für Kamera 1: Alarmbilder\Kamera1\snapshot
Beispielpfad für Kamera 2:Alarmbilder\Kamera2\snapshot
u.s.w.

Jetzt würde ich gerne - wenn möglich vollautomatisch - nach x Tagen die Bilddateien in den jeweiligen "snapshot-Ordnern" löschen.

Habt Ihr da einen Tipp für mich? Wie kann man das lösen?


Schon jetzt herzlichen Dank für Eure Hilfe!

Gruß

Mapple
 

Mapple

Benutzer
Mitglied seit
04. Jun 2012
Beiträge
66
Punkte für Reaktionen
0
Punkte
6
Hallo jugi,

vielen Dank für Deine Hilfestellung.
Leider haut das bei mir nicht hin :-(
Im Aufgabenplaner habe ich folgendes eingegeben: find /Volume1/Alarmbilder/Kamera1/snapshot* -mtime +1 -exec rm {} \;
Wenn ich das benutzerdefinierte Skript - unter Befehl ausführen - starte passiert nichts :-(

Ist da ein Fehler im Pfad?

Danke und Gruß

Mapple
 

jugi

Benutzer
Mitglied seit
07. Apr 2011
Beiträge
1.853
Punkte für Reaktionen
0
Punkte
56
Du musst das als .sh datei abspeichern und dann diese datei vom aufgabenplaner ausführen lassen, der kann nicht selber direkt bash-scripte ausführen.

=> Lektüre: http://linuxcommand.org/wss0010.php (den PATH-Kram brauchste nicht)
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.708
Punkte für Reaktionen
1.017
Punkte
754
Ich meine, man könnte auch eine Kommandozeile direkt ausführen lassen. Aber - wie auch in einem Shell-Skript - fehlt das Environment. Insofern sind Pfade nötig - also z.B. /usr/bin/find und /bin/rm unter DSM 5.2. Dazu kommt in diesem Fall noch, dass es volume1 und nicht Volume1 heißen muss. Bei den nachfolgenden Verzeichnisnamen auch auf die korrekte Groß- und Kleinschreibung achten, die unter Linux/Unix im Gegensatz zu Windows unterschieden wird.
 

Mapple

Benutzer
Mitglied seit
04. Jun 2012
Beiträge
66
Punkte für Reaktionen
0
Punkte
6
Ordner gefunden mit "cd volume1" - kämpfe weiter....

Hallo zusammen,

meine Güte ist das "kompliziert"?!?!
Ich finde den Ordner Alarmbilder einfach nicht :-(
Wenn ich mich mit PuTTY auf die DS einlogge, dann bin ich im Verzeichnis "/var/services/homes/admin"?
Weiter zurück mit dem Befehl "cd" komme ich nicht.

Wo sind denn meine ganzen Verzeichnisse?

Also unter DOS kam ich klar :))))

Gruß

Mapple
 
Zuletzt bearbeitet:

Mapple

Benutzer
Mitglied seit
04. Jun 2012
Beiträge
66
Punkte für Reaktionen
0
Punkte
6
Hallo zusammen,

vielen Dank für Eure Hilfe.

Ich habe mich ein wenig durchgebissen und teile Euch meine Lösung mit:
skript.jpg

Mit dieser Zeile läuft es bei mir: "find /volume1/Alarmbilder -mtime +15 -type f -delete"
Zeitraum 15 Tage

Gruß

Mapple
 

PsychoHH

Benutzer
Mitglied seit
03. Jul 2013
Beiträge
2.967
Punkte für Reaktionen
4
Punkte
78
Mit cd / kommst du ganz nach unten..
Den Pfad könntest du auch anders setzten z.B.
find /volume*/Alarmbilder/Kamera*/snapshot* -mtime +15 -exec rm {} \;

Falls du mal mehrere volume hast.

Zusätzlich könnte man noch -name ".jpg" oder png keine Ahnung welches Format sie haben nutzen, damit nur die Bilder gelöscht werden.
 

Mapple

Benutzer
Mitglied seit
04. Jun 2012
Beiträge
66
Punkte für Reaktionen
0
Punkte
6
Hallo PsychoHH,

auch Dir herzlichen Dank für den Beitrag!

Das schaue ich mir morgen (ach nee heute) mal genauer an :)


Gruß

Mapple
 

Mapple

Benutzer
Mitglied seit
04. Jun 2012
Beiträge
66
Punkte für Reaktionen
0
Punkte
6
Hallo zusammen,

ich nochmal :)

Also wenn ich das Skript in PuTTY starte läuft es gut durch.
Starte ich es als "admin" automatisch im Aufgabenplaner, dann bekomme ich folgende Meldung:
Sehr geehrter Benutzer,

Aufgabenplaner hat eine geplante Aufgabe abgeschlossen.

Aufgabe: taeglich alle Bilder in Alarmbilder nach 15 Tagen loeschen
Startzeit: Sat, 30 Apr 2016 00:31:02 GMT
Stoppzeit: Sat, 30 Apr 2016 00:31:02 GMT
Aktueller Status: 1
Standardausgabe/Fehler:
find: cannot get current directory: Permission denied

Warum wird der Zugriff verweigert?

Danke und Gruß

Mapple
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.708
Punkte für Reaktionen
1.017
Punkte
754
Kannst Du bitte einmal das Skript posten? Ist es ausführbar (chmod 750)?
 

Mapple

Benutzer
Mitglied seit
04. Jun 2012
Beiträge
66
Punkte für Reaktionen
0
Punkte
6
Hallo dil88,

ja, hier sind beide Versionen:
Version A: find /volume1/Alarmbilder -mtime +15 -type f -delete

Version B: find /volume*/Alarmbilder/Kamera*/snapshot* -mtime +15 -exec rm {} \;

A oder B laufen wenn ich mit Putty drin bin.
Im Aufgabenplaner erhalte ich besagte Fehlermeldung :-(

Mein Gott, was ist ein chmod 750?
Ich muss das mal googeln :)

Danke für Deine Hilfe!

Gruß

Mapple
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.708
Punkte für Reaktionen
1.017
Punkte
754
Mit chmod 750 <Skript> kannst Du das Shell-Skript ausführbar machen. Aber Du nutzt gar kein Shellskript sondern hast die Zeile direkt in der Aufgabe angegeben, richtig? Ergänze vor find den Pfad, den Du per
Code:
which find
herausbekommen kannst. Bei mir ist es /usr/bin/find.
 

Mapple

Benutzer
Mitglied seit
04. Jun 2012
Beiträge
66
Punkte für Reaktionen
0
Punkte
6
Hallo dil88,

bei mir ist es:
/usr/find...

läuft aber immer noch nicht, selbe Fehlermeldung?!

Gruß

Mapple
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.708
Punkte für Reaktionen
1.017
Punkte
754
/usr/find ist es auf gar keinen Fall. Es geht um ein Standard-Programm - und die liegen in einem Verzeichnis bin oder sbin. Welche DSM-Version verwendest Du?
 

Mapple

Benutzer
Mitglied seit
04. Jun 2012
Beiträge
66
Punkte für Reaktionen
0
Punkte
6
Hallo dil88,

ich verwende DSM 6.0-7321 Update 4

Gruß

Mapple
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
13.998
Punkte für Reaktionen
264
Punkte
373
Hallo,
unter DSM 6 ist /bin ein Symlink nach /usr/bin. /bin/find sowie /usr/bin/find sollten funktionieren.

Gruß Götz
 

Mapple

Benutzer
Mitglied seit
04. Jun 2012
Beiträge
66
Punkte für Reaktionen
0
Punkte
6
Hallo goetz,

also, wenn ich diese Zeile "find /volume1/Alarmbilder -mtime +15 -type f -delete" bei Putty eingebe, dann funktioniert es.

Wenn ich diese Zeile im Aufgabenplaner als Skript hinterlege und als admin ausführe funktioniert es nicht?


Kannst Du mir mal bitte die gesamte Zeile - bezogen auf "find /volume1/Alarmbilder -mtime +15 -type f -delete" - angeben?

Danke

Mapple
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.708
Punkte für Reaktionen
1.017
Punkte
754
Rich (BBCode):
/usr/bin/find /volume1/Alarmbilder -mtime +15 -type f -delete
 

Mapple

Benutzer
Mitglied seit
04. Jun 2012
Beiträge
66
Punkte für Reaktionen
0
Punkte
6
Hallo dil88,

vielen Dank für Deine Hilfe, aber

sowohl "/usr/bin/find /volume1/Alarmbilder -mtime +15 -type f -delete"
als auch "/bin/find /volume1/Alarmbilder -mtime +15 -type f -delete"

bringen diese Fehler:
/usr/bin/find: cannot get current directory: Permission denied
/bin/find: cannot get current directory: Permission denied


Bei einer Abfrage in Putty mit pwd befinde ich mich:
admin@DSXY:~$ pwd
/var/services/homes/admin

Und von da aus läuft die schon mehrfach genannte Zeile.

Gruß

Mapple
 
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