Beiträge von eol66

    Oh..... das ist ganz anders, als erwartet! :mcup:


    Aber was solls. Das Verzeichnis für das Jahr hieße dann eben `date +%Y`, für den Monat `date +%m` und für den Tag `date +%d`.


    Damit kann er umgehen, keine Sorge. Ein einfacher Verzeichniswechsel cd `date +%Y` macht genau, was es soll. Er versucht in das Verzeichnis 2022 zu wechseln und wechselt auch, sofern 2022 vorhanden.


    Jahr und Monat sind also schonmal easy. Das Verzeichnis Jahr heißt /Dein/fPad/`date +%Y` und dort dann - wie lange und breit bereits beschrieben - alles löschen, was älter, als 7 Tage ist. Im Monat genauso, nur eben /Dein/Pfad/`date +%m`



    Beim Tag löscht er im Prinzip das ganze Verzeichnis, also `date +%d`, sofern älter, als 7 Tage. = rm -r



    Soweit gut, oder denkst Du bereits darüber nach neue Kameras zu kaufen? :ziped:


    Probiere es aus:

    1.) ssh auf Dein NAS

    2.) cd /ReoLink/reolink/record_nvr/channel/`date +%Y`


    Er muss danach in 2022 stehen. MUSS!

    /xxx/ (alle Verzeichnisse, die dann erzeugt werden von der Kamera, sollen die Inhalte, die älter als 7 Tage sind gelöscht werden.

    Jahr

    Monat

    Tag

    Code
    find /mnt/ext/usr/bin/find /ReoLink/reolink/record_nvr/channel -type f -mtime +7 –delete

    Hast Du den schon mal probiert? Also ssh auf Dein NAS und dort dann o.a. rein kopieren STRG+ ALT + V


    Entweder er löscht oder gibt ne Fehlermeldung aus.

    eol66 - ja ich möchte das im Verzeichnis Tag und im Verzeichnis Monat der Inhalt gelöscht wird nach 7 Tagen; das aber auch übergreifen, wenn das Jahr sich ändert....

    Mein erster Test würde so aussehen:


    1.) Datei reolink.sh anlegen, wie von FSC830 beschrieben

    2.) EDV etwas mit der Hand am Arm drei Löschbefehle eintragen


    Code
    find /pfad/zu/deinen/dateien/Jahr -ctime +7 -exec rm {} \; &&
    find /pfad/zu/deinen/dateien/Monat -ctime +7 -exec rm {} \; &&
    find /pfad/zu/deinen/dateien/Tag -ctime +7 -exec rm {} \;


    3.) reolink.sh ausführbar machen: chmod +x reolink.sh


    4.) Testen, was Dein Skript macht: sh reolink.sh


    5.) Hat es - wider Erwarten - die entsprechenden Dateien gelöscht, erfolgt der Eintrag in die crontab.


    Ich hatte mich nicht geirrt: Es gab/gibt User, die davon berichten, dass die Einträge in der crontab nach einem Neustart verschwunden sind. Ich habe dieses Problem nicht. Aber auch das kann man ggf. testen: sudo crontab -l zeigt Dir die Einträge.


    Edit: OK, das Verzeichnis heißt also nicht Jahr, sondern bspw. 2022? Heißt auch nicht Monat, sondern bspw. August? Heißt auch nicht Tag, sondern bspw. 27 oder Samstag?


    Wenn dem so wäre, müsste man natürlich noch mit date etwas aus dem Ärmel schütteln.

    Mir ist gerade noch aufgefallen: Im Dateinamen ist automatisch das aktuelle Datum? Dann wird das Script aufwändiger, denn dann muss zunächst das aktuelle Tagesdatum ermittelt werden und passend als Variable im Pfadnamen einfliessen.

    Du schreibst doch in Deinem vorigen Post selbst:

    Mod: Zitat ohne Quellenangabe ... korrigiert! :handbuch::arrow: Forenregeln beachten und Die Zitat Funktion des Forums richtig nutzen

    Achtung! Nur als Beispiel:

    find /root/.cvdupdate/database/ -iname "*" -mtime +14 -delete


    Ist ein Befehl, der auf einem meiner Pi alle Dateien im angegebenen Verzeichnis "/root/.cvdupdate/database/" löscht die älter als 14 Tage sind!


    Ich verstehe HSE24 immer noch so, dass er genau das möchte: Alle Dateien in den Verzeichnissen Jahr/Monat/Tag löschen, die älter als 7 Tage sind. Alle!


    Die Dateinamen sind dabei doch völlig irrelevant, ob sie nun das Datum beinhalten oder nicht.

    Achtung! Nur als Beispiel:

    find /root/.cvdupdate/database/ -iname "*" -mtime +14 -delete


    Ist ein Befehl, der auf einem meiner Pi alle Dateien im angegebenen Verzeichnis "/root/.cvdupdate/database/" löscht die älter als 14 Tage sind!

    Ich hatte (und habe immer noch) HSE24 so verstanden, dass er genau das möchte! Mein Fehler - Asche über mein Haupt.


    Edit: Ob mtime oder ctime spielt dabei sicher keine Rolle!

    Du kannst eine reolink.sh (oder wie immer Du sie nennen möchtest) anlegen und darin den Befehl zum löschen Deiner 7 Tage alten Dateien unterbringen. In der crontab würdest Du dann zum gewünschten Zeitpunkt diese Datei (muss ausführbar gemacht werden chmod +x reolink.sh) aufrufen.


    Du kannst die reolink.sh aber auch einfach vergessen und in der crontab direkt den Befehl zum löschen aufrufen.


    Ich mache das auf einem Linuxserver ähnlich: Über crontab wird täglich ein Backup gestartet, ist das durchgeführt folgt (&&) der Befehl zum Löschen der Backups, die älter sind als x Tage.


    Der Befehl würde in etwas so lauten


    Code
    find /pfad/zu/deinen/dateien -ctime +7 -exec rm {} \;


    Das ist kurz genug um es direkt in die crontab zu schreiben, eine extra reolink.sh ist überflüssig.


    Ich meine allerdings gelesen zu haben, dass es etwas müßig ist auf einem qnap die crontab zu ändern. Wenn ich mich richtig erinnere, sind die Änderungen nach einem Neustart oft weg!?


    Viel Glück dabei!

    Hallo,


    zuerst bitte ich um Nachsicht: Mein erstes NAS, mein erstes QNAP!


    Meine Daten (ca. 10 TB) speichere ich seither auf einem PI, ein zweiter PI erstellt mittels cronjob und rsync täglich ein Backup. Zig externe HDD's, Netzteile etc. ergaben einen unendlich Kabelwust, den ich jetzt mit einem NAS etwas eindämmen wollte.


    Ich könnte meine Backups natürlich weiterhin mit dem Raspberry Pi bewerkstelligen, da ich dort aber 2 USB HDD's mittels LVM mounte, träume ich so vor mich hin, dass ich diese beiden HDD'S auch am NAS mittels LVM mounten könnte. Also direkt die fstab entsprechend anpasse!?


    Großer Denkfehler? Völlig ausgeschlossen? Womöglich sogar Frevel? Oder ginge es vielleicht doch? :handbuch:


    Dankbar für jeden Tipp!