Verzeichnisse/Dateien löschen mittels Script undCronjob

  • Hallo,


    mangels fundierter Linux-Kenntnisse möchte ich hier einmal eine Frage stellen:


    Auf einer am Raspberry Pi 2 an einem USB-Port angesteckten MicroSD-Karte (usbmount) werden die Aufnahmen(Einzelbilder bei Bewegung) einer WebCam gespeichert.
    Die einzelnen Foto`s werden in Ordnern mit Tagesdatum und Uhrzeit abgespeichert.
    Damit die Karte nicht irgendwann "voll" ist, kann man entweder Ordner ab einem gewissen Datum(z.B. 1 Monat alt) händisch löschen, oder so meine Vorstellung - automatisch mit Hilfe eines Cronjobs löschen lassen.


    Und da beginnt mein Problem:


    Wie kann man das realisieren? Den Cronjob bekomme ich wohl noch hin, aber das Script, da wird es schon schwieriger....


    Über Anregungen und Tipps wäre ich dankbar!


    MfG. Falconcrest

    MfG. Carsten

    Edited once, last by Falconcrest ().

  • Bash
    #!/bin/bash
    find /dein/pfad/zum/bild -maxdepth 1 -type f \( -name "*.jpg" \) -mtime +7 -exec rm {} \;


    Löscht alle *.jpg welche älter als 7 Tage sind im Ordner /dein/pfad/zum/bild.

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?


    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

    Edited once, last by Der_Imperator ().

  • Hallo Der_Imperator,


    vielen Dank erst einmal für Deine schnelle Antwort.


    Bash
    #!/bin/bash
    find /dein/pfad/zum/bild -maxdepth 1 -type f \( -name "*.jpg" \) -mtime +7 -exec rm {} \;


    Löscht alle *.jpg welche älter als 7 Tage sind im Ordner /dein/pfad/zum/bild.


    ...und dazu lege ich dann einen Cronjob an, welcher z.B. immer Sonntags um 24.00Uhr das Script ausführt?


    Vielleicht habe ich mich doch etwas unklar ausgedrückt, aber die jpg-Dateien werden in tagesabhängigen Ordnern abgelegt, also Verzeichnisnamen in der Form "20150331" etc..
    Wenn ich das Script richtig verstehe, löscht es nur die Dateien in einem bestimmten Ordner.
    Es sollten aber alle Ordner eines Monats bzw. einer Woche(was wohl viel schwieriger zu realisieren wäre) gelöscht werden.( also z.B. Mitte April alle Ordner aus dem März o. ä.)


    Hättest Du auch dafür eine Lösung parat?


    MfG. Falconcrest

    MfG. Carsten


  • Wobei ich mir jetzt nicht 100% sicher bin.
    Hab keine Ordner zum Testen ;-)
    Von daher hab ich erst mal die Zeile mit dem löschen auskommentiert.
    Lass es mal so laufen und schau ob er die Ordner anzeigt welche du löschen möchtest.


    Bash
    #!/bin/bash
    #find /dein/pfad/zu/ordnern -maxdepth 1 -type d -mtime +7 -exec rm {} \;
    find /dein/pfad/zu/ordnern -maxdepth 1 -type d -mtime +7


    Quote


    Wenn ich das Script richtig verstehe, löscht es nur die Dateien in einem bestimmten Ordner.
    Es sollten aber alle Ordner eines Monats bzw. einer Woche(was wohl viel schwieriger zu realisieren wäre) gelöscht werden.( also z.B. Mitte April alle Ordner aus dem März o. ä.)


    Der Parameter mtime +7 sagt das alles was älter als 7 Tage ist.
    Da kannst du auch 14 reinschreiben, dann hast du alles was älter als 14 Tage ist.
    Oder 3 wenn du nur die letzten drei tage behalten möchtest.
    Wenn du jetzt gezielt zwischen dem 5.2 und 30.3 löschen möchtest, dann wird es etwas komplizierter.

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?


    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

    Edited once, last by Der_Imperator ().

  • Hallo Der_Imperator,



    Bash
    #!/bin/bash
    find /dein/pfad/zu/ordnern -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;


    mit Parameter -rf, das ist die Lösung, somit löscht er die Verzeichnisse samt Inhalt.


    Quote


    Der Parameter mtime +7 sagt das alles was älter als 7 Tage ist.
    Da kannst du auch 14 reinschreiben, dann hast du alles was älter als 14 Tage ist.
    Oder 3 wenn du nur die letzten drei tage behalten möchtest.
    Wenn du jetzt gezielt zwischen dem 5.2 und 30.3 löschen möchtest, dann wird es etwas komplizierter.


    Danke für die Erläuterung und Hilfe!:thumbs1:


    MfG. Falconcrest

    MfG. Carsten

    Edited once, last by Falconcrest ().

  • Hallo Freunde,


    da ich auch in diesem Forum begrüsse ich euch alle erstmal....:-)


    Zu diesem Beitrag hätte ich auch eine frage.


    Ich möchte fast das selbe wie der Falconcrest nur das es bei reinstecken der USB mit dem neuen die alte Bilder löscht und neue drauf kopiert.

    Ist das möglich?


    LG

  • könntest du mir da behilflich sein?

    Ja klar, gerne.... und nicht nur ich kann da behifllich sein... hier gibts haufenweise Leute, die mehr wissen als ich. Mach einfach einen neuen eigenen Thread auf, das ist hier nämlich eine 5 Jahre alte Mumie.


    Erkläre genau, was unter welchen Umständen, mit welcher Hardware, durch was ausgelöst, von wem erledigt werden soll. Je präziser das erklärt ist, umso einfach gestaltet sich die Lösungssuche. Und wenn Du schon irgendwas zur Problemlösung unternommen hast, bitte auch das kurz erklären, ebenso, wenn es dabei zu Fehlern gekommen ist. Je besser Du das Problem erklärst, für uns fremde, die wir alle keine Ahnung haben, was Dein Ziel ist, welche Hardware bei Dir am Rennen ist, wie der logische Ablauf Deines Prozesses von Anfang bis Ende sein soll, umso besser kann man helfen.

  • Ja klar, gerne.... und nicht nur ich kann da behifllich sein... hier gibts haufenweise Leute, die mehr wissen als ich. Mach einfach einen neuen eigenen Thread auf, das ist hier nämlich eine 5 Jahre alte Mumie.


    Erkläre genau, was unter welchen Umständen, mit welcher Hardware, durch was ausgelöst, von wem erledigt werden soll. Je präziser das erklärt ist, umso einfach gestaltet sich die Lösungssuche. Und wenn Du schon irgendwas zur Problemlösung unternommen hast, bitte auch das kurz erklären, ebenso, wenn es dabei zu Fehlern gekommen ist. Je besser Du das Problem erklärst, für uns fremde, die wir alle keine Ahnung haben, was Dein Ziel ist, welche Hardware bei Dir am Rennen ist, wie der logische Ablauf Deines Prozesses von Anfang bis Ende sein soll, umso besser kann man helfen.

    Hi Thomas,


    danke für deine Info. Dies werde ich jetzt Tun und erklären das Problem ist bis zu diesem Stand der Raspberry PI wurde es von einem Kollegen gemacht.

    Aber das script kann ich Posten das alles ist kein Problem.


    LG