Verzeichnisse/Dateien löschen mittels Script undCronjob

L I V E Stammtisch ab 20:30 Uhr im Chat
  • 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

    Einmal editiert, zuletzt von Falconcrest (10. April 2015 um 11:08)

  • Verzeichnisse/Dateien löschen mittels Script undCronjob? Schau mal ob du hier fündig wirst!

  • 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.

    Einmal editiert, zuletzt von Der_Imperator (1. April 2015 um 10:25)

  • 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


  • 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..


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

    MfG. Falconcrest

    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
    Zitat


    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.

    Einmal editiert, zuletzt von Der_Imperator (1. April 2015 um 12:46)

  • 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.

    Zitat


    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

    Einmal editiert, zuletzt von Falconcrest (11. April 2015 um 10:13)

  • 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

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!