Aufnahmespeicher regelmäßig bereinigen

  • Hallo,

    am ehesten passt mein Anliegen wohl hierher:

    Ich habe in Unraid einen Freigabeordner "Recordings". Da laufen alle Film- und Serienaufnahmen aus TVHeadend in den jeweiligen Unterordner rein.
    Mit dem wunderbaren Skript von @PvD werden neben der eigentlichen Aufnahme (hier als *.mkv) dann eine *.nfo-Datei sowie eine *-poster.jpg abgelegt.
    Zusätzlich legt TVHeadend über das Comskip-Modul noch eine *.[definition='1','0']log[/definition], eine *.logo.txt, eine *.edl, eine *.txt sowie eine *.vdr -Datei an.
    Ergänzt/vervollständigt werden die Aufnahmen dann ggfs. noch mit weiteren Metadaten/Artworks aus Jellyfin (season.nfo, Ordner /metadata, etc.).

    Soweit so gut.

    Jetzt kommt es aber vor, dass Aufnahmen wieder gelöscht werden. Das geschieht entweder über Kodi im TVH-PVR-Plugin unter Aufnahmen, oder in Kodi unter Filme bzw. Serien, oder direkt in Jellyfin.
    Dabei werden kann aber nicht alle Dateien zur Aufnahme gelöscht, sondern idR nur die eigentliche Aufnahme *.mkv.
    Alle anderen Daten bleiben als "Leichen" zurück.

    Das ganze würde ich jetzt wie folgt umgehen wollen:
    Über Unraid würde ich gerne einmal täglich ein kleines Cron-Skript laufen lassen, dass im Recordings-Ordner und dessen Unterordner nach Aufnahmeverzeichnissen sucht, die, sagen wir mal, kleiner als 100 MB sind (kleiner werden selbst kurze Aufnahmen denke ich nicht sein), und dann den Ordner mitsamt Inhalt löscht.

    Allerdings vertraue ich nicht allzusehr in meine Linux-Kenntnisse und möchte nicht versehentlich meine ganzen Daten von dem Unraid-Server löschen...
    Daher die Frage:

    Wie müsste so ein Skript aussehen?
    Gibt es Einwände zu dem Vorhaben, bzw. könnte man das irgendwie vll. sogar eleganter bewerkstelligen?

  • Ich würde verwaiste Aufnahmen auch tatsächlich am Vorhandensein einer Aufnahme (also .mkv, zusätzlich auch .ts) festmachen, da Metadaten ja erst per Postprozess erzeugt werden. Gibt es also keine .mkv/.ts im Ordner, gilt dieser als verwaist und kann gelöscht werden.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Ich würde verwaiste Aufnahmen auch tatsächlich am Vorhandensein einer Aufnahme (also .mkv, zusätzlich auch .ts) festmachen, da Metadaten ja erst per Postprozess erzeugt werden. Gibt es also keine .mkv/.ts im Ordner, gilt dieser als verwaist und kann gelöscht werden.

    Die Idee gefällt mir sogar noch besser [ab]

    Jetzt ärger ich mich nur dass ich da nicht gleich drauf gekommen bin.

  • Nachdem ich hier leider wirklich nicht sehr bewandert bin was es so an Befehlen und Befehlszeilenoptionen gibt, habe ich etwas im Internet gestöbert.

    Mit diesem Befehl scheint sich der Unterordner für Filme ganz gut bereinigen zu lassen

    Code
    find /mnt/user/Recordings/Filme -mindepth 1 -maxdepth 1 -type d '!' -exec sh -c 'ls -1 "{}" | egrep -i -q "\.(ts|mp4|mkv)"' \; -print | while read line;do rm -r $line;done

    ohne den Teil  | while read line;do rm -r $line;done lässt sich das auch "trocken" testen ohne das direkt was gelöscht wird.

    Das ganze Funktioniert aber natürlich nur, wenn die Ordnerstruktur so sauber bleibt. Also für jeden Film ein eigener Ordner in dem dann alle Metadaten dazu liegen.


    Schwierigkeiten hab ich aber mit dem Verzeichnis in den Serien oder sonstige Fernsehsendungen reinlaufen.
    Da funktioniert die Eingrenzung mit 'mindepth' und 'maxdepth' so leider nicht.
    Die Struktur sieht so aus:

    • [Fernsehsendungen]

      • [Die Schatzsucher von Oak Island]

        • [Season 8]
        • backdrop.jpg
        • banner.jpg
        • folder.jpg
        • landscap.jpg
        • logo.png
        • theme.mp3
        • tvshow.nfo

          • [metadata]
          • Die Schatzsucher von Oak Island - S08E01 - Schatzsucher in der Pandemie.edl
          • Die Schatzsucher von Oak Island - S08E01 - Schatzsucher in der Pandemie.[definition='1','0']log[/definition]
          • Die Schatzsucher von Oak Island - S08E01 - Schatzsucher in der Pandemie.logo.txt
          • Die Schatzsucher von Oak Island - S08E01 - Schatzsucher in der Pandemie.mkv
          • Die Schatzsucher von Oak Island - S08E01 - Schatzsucher in der Pandemie.nfo
          • Die Schatzsucher von Oak Island - S08E01 - Schatzsucher in der Pandemie.txt
          • Die Schatzsucher von Oak Island - S08E01 - Schatzsucher in der Pandemie.vdr
          • Die Schatzsucher von Oak Island - S08E01 - Schatzsucher in der Pandemie-poster.jpg
          • folder.jpg
          • season.nfo

            • Die Schatzsucher von Oak Island - S08E01 - Schatzsucher in der Pandemie.jpg

    Wenn ich jetzt mindepth und maxdepth auf 2 setze, bleiben die Infos zur Sendung dennoch erhalten, auch wenn alle Aufnahmen einer Staffel bereits gelöscht wurden.
    Außerdem liegen alle Folgen einer Staffel im gleichen Ordner, so dass die Metadaten zur Folge erste bereinigt werden würden, wenn alle Folgen gelöscht wurden.

    Wenn ich mindepth auf 1 und maxdepth auf 2 setze, dann werden alle Staffeln gelöscht, unabhängig davon ob eine Aufnahme gelöscht wurde oder nicht, weil in dem Ordner zur Serie nie eine Videodatei enthalten ist.

    Das ist komplizierter als ich dachte...
    Hat jemand einen Vorschlag für mich?

  • Wie handhabt ihr das denn?

    Denke mal die Konstellation aus TVHeadend, Kodi und Jellyfin/Emby ist jetzt nicht so ungewöhnlich. Somit müsste sich die Problemstellung doch auch anderen ergeben.
    Oder belasst ihr die verwaisten Metadaten zu gelöschten Aufnahmen einfach am Speicherort?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!