Script löscht alte Dateien

  • Hallo.


    Ich möchte Dateien (Bilder und Videos) in einem Ordner löschen die älter sind als 60 Tage.


    Meine Kamera schickt über FTP die Bilder auf die interne Hdd in einen Ordner. Wenn die 60 Tage vorbei sind, sollen diese gelöscht werden. Habe das Script so in anderen Forenbeiträgen gefunden da ich es selbst nicht hinbekommen habe (bin kein Programmierer):


    #!/bin/sh


    find /media/hdd/Kamera/* -mtime +60 -exec rm {} \;
    exit 0


    Script habe ich das Merlin.sh genommen und via DCC auf Windows PC kopiert, auf den USB Stick dann eingefügt und im DCC 2.40 bearbeitet wie es oben steht.


    Das Script habe ich auf dem angeschlossenen USB Stick liegen:


    /media/PICONS/Cron/Autodelete.sh - Rechte auf 755 gesetzt.


    Via Cron im Gemini habe ich das Script aktiv alle Minuten laufen zum ausprobieren.


    Leider löscht das Script nicht die Dateien.


    Kann mir jemand helfen wie ich das Script zum laufen bekomme?

  • Bevor Du die Kür angehst und das Ganze per Script via Cron laufen lässt, sollte man seine Befehle erstmal so in der Kommandozeile testen. Und bevor man wild Löschbefehle ausführt, würde ich zuerst mal nur das find() probieren. Also das hier:


    find /media/hdd/Kamera/ -type f -mtime +60


    Wenn das etwas anzeigt, kannst Du das "-exec rm {} \;" mal anhängen, nochmal starten und schauen, ob es was löscht.


    Mach das mal und poste die Ergebnisse. Danach schauen wir weiter...


    EDIT: "-type f" eingefügt, da Du ja nur Dateien löschen willst und keine Verzeichnisse. Und * entfernt bei der Lokation.

  • Hey Klasse. Der findet 5 Dateien. Hänge ich das -exec rm {} \; noch an löscht der auch die Dateien. Passt soweit. Meine Kamera erzeugt Ordner und legt diese dort ab. Deshalb hat der auch nichts gelöscht. Durch dein find habe ich den Fehler entdeckt und in der Kamera umgeschaltet dass der alles in einen Ordner ablegt. Ist ja viel besser wenn es nicht 10000 Dateien mit Unterordner sind.


    Nun wäre noch das automatische ausführen. Was wäre denn da falsch bzw. wo muss ich das Skript nun wo abspeichern, damit das automatisch ausgeführt wird?

  • Wo Du das Script ablegst, ist prinzipiell egal.


    Ich habe an meiner Box einen USB Stick mit meinen "persönlichen Dingen", die ich auch bei einem Neuflash der Box behalten möchte. Da lege ich meine Scripte ab. Das wäre bei mir dann /media/usb/bin/


    Aber prinzipiell geht da jeder Ort.


    Dann kannste das in cron hinterlegen und lässt es einmal am Tag ausführen.

  • die /etc/fstab wird beim flashen gesichert und wieder hergestellt, der rest macht die fstab ;)