Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Cache Mover

Featured Replies

Guten Abend :)

@alturismo hat mir mitgeteilt, bei Fragen zum Plugin hier zu posten, also tu ich das :D

Hab jetzt eine Weile mit dem Tool rumgespielt, aber er verschiebt nichts.

Vermutlich scheitert es schon daran, die richtigen Pfade einzutragen.

Meine Medien liegen unterteilt auf: /mnt/user/media

dort unterteilt auf:

Filme: /mnt/user/media/videos/Anfangsbuchstabe/Filmtitel/IchBinDerFilm.mkv

Serien: /mnt/user/media/tvshows/Serientitel/Season 123/ichBinDieSerie - S123E12 - Titel.mkv

Konzerte: /mnt/user/media/concerts/Anfangsbuchstabe/Filmtitel/IchBinDasKonzert.mkv

Ich benutzt 2 Cache SSDs, 1x als normalen Cache, die andere als Mediacache (auch so benannt).

Mein Share ist direkt auf den Ordner MEDIA bezogen, damit ich über den PC direkt auf alles in dem Ordner Zugriff habe, es liegen auch Bilder, mp3 etc darin, Primary ist die SSD "Mediacache", Secondary das Array.

  1. Muss ich im Plugin bei Media Subfolders die kompletten Pfade angeben, oder einfach nur "videos" "concerts" "tvshows"?

  2. Exclusions kann ich wahrscheinlich leer lassen, wenn ich nichts ausschließen möchte?

  3. Subfolder keep Hours Secondary... muss ich da erst einen erstellen, oder übernimmt das Tool das selbstständig wenn ich zb. /TVRIPS eintrage wie vorgeschlagen?

  4. Processing and Mover Tuning... komplett nur Fragezeichen vor der inneren Stirnhöhle ☠️

  5. Media Server: IP, API etc eingetragen, only multi (?), Media Server Rewrites wie vorgeschlagen (ist vermutlich falsch?)

Edited by scout210177

25 minutes ago, scout210177 said:

Muss ich im Plugin bei Media Subfolders die kompletten Pfade angeben, oder einfach nur "videos" "concerts" "tvshows"?

nur die subfolders direkt reichen

Hinweis (gilt für alle settings), ich hab überall eine Hilfe dabei (mouse over, ? click), Beispiel (gilt für ziemlich alle Fragen)

image.png

30 minutes ago, scout210177 said:

Exclusions kann ich wahrscheinlich leer lassen, wenn ich nichts ausschließen möchte?

exakt, mehr für ARR user wo innerhalb subfolders nutzen und es dann kollidieren könnte

30 minutes ago, scout210177 said:

Subfolder keep Hours Secondary... muss ich da erst einen erstellen, oder übernimmt das Tool das selbstständig wenn ich zb. /TVRIPS eintrage wie vorgeschlagen?

trag etwas ein, wenn du die Funktion nicht nutzen willst, dann ein unsinniger Name wie abcdefg

31 minutes ago, scout210177 said:

Processing and Mover Tuning... komplett nur Fragezeichen vor der inneren Stirnhöhle ☠️

Kurzfassung, wenn du das nicht nutzt ...

werden die "cached files" nicht automatisch nach Ablauf entfernt und / oder mover könnte dazwischen funken ...

daher spiele ich zusammen mit dem mover tuning plugin um die "cached files" aus dem mover zu excluden.

image.png

34 minutes ago, scout210177 said:

Media Server: IP, API etc eingetragen, only multi (?), Media Server Rewrites wie vorgeschlagen (ist vermutlich falsch?)

Kurzfassung, das plugin kann "allgemein immer" greifen oder nur spezifisch wenn ein Mediaserver was abspielt, ansonsten würde es auch greifen wenn beispielsweise etwas per VLC abgespielt wird usw ...

image.png

wenn only oder multi müssen natürlich credentials da rein ...

rewrites, kommt drauf an wie der Mediaserver dann seine mounts hat, wenn /mnt <> /mnt dann hätten wir eine 1:1 Beziehung und es ist kein rewrite nötig, wenn jedoch beispielsweise /mnt/user/media <> /data mounted wäre im Mediaserver Docker, dann wäre ein rewrite nötig im Media Server mode.

wenn du möchtest, poste den Inhalt (unraid terminal), ACHTUNG, deinen token maskieren wenn hinterlegt !!!

cat /boot/config/plugins/cache-mover/cachemoversettings

ebenso

cat /boot/config/shares/media.cfg

und ggf. wenn der Mediaserver im Spiel ist, einen screen von (hier die saubere 1:1 Beziehung)

image.png

  • Author

cat /boot/config/plugins/cache-mover/cachemoversettings

disks=""

pool="Mediacache"

subfolders="video tvshows concerts"

filetypes=".mkv .mp4 .ts .avi .mpeg"

wait_todo="120"

move_excl=""

move_excl_list="/mnt/user/system/mover/mover_excl.txt"

move_tune_list="/mnt/user/system/mover/mover_ignore.txt"

rsync_mode="copy"

rsync_move=""

rsync_copy="rsync --stats -azht --mkpath"

switch_mode="switch"

time_keephours="24"

time_keephours_sub="720"

subfolder_keep_sub="/TVRIPS"

target_keephours="user0"

use_recycle="no"

recycle_folder=".Recycle.Bin"

unraid_note="yes"

unraid_syslog="yes"

script_cron="*/10 * * * *"

clean_cron="5 7 * * *"

mediaserver_type="jelly"

mediaserver_url="http"

mediaserver_host="192.168.1.3"

mediaserver_port="8096"

mediaserver_key="****************************"

mediaserver_only="only multi"

script_cron_state="started"

clean_cron_state="started"

exclusions=""

rewrite_source="/data/mnt/user/Media"

cat /boot/config/shares/media.cfg

# Generated settings:

shareComment=""

shareInclude=""

shareExclude="disk4"

shareUseCache="yes"

shareCachePool="mediacache"

shareCachePool2=""

shareCOW="auto"

shareAllocator="highwater"

shareSplitLevel="0"

shareFloor="100000000"

shareExport="e"

shareCaseSensitive="auto"

shareSecurity="private"

shareReadList=""

shareWriteList="danny,print,shield,adminin,dannysmb,mobil"

shareVolsizelimit=""

shareExportNFS="-"

shareExportNFSFsid="0"

shareSecurityNFS="public"

shareHostListNFS=""

Screenshot 2025-10-13 222106.png

7 hours ago, scout210177 said:

pool="Mediacache"

ist falsch, deiner heißt effektiv "mediacache", wird oft falsch gemacht da in der Übersicht upper case angezeigt wird ;)

7 hours ago, scout210177 said:

subfolders="video tvshows concerts"

"video" sehe ich keine in Jelly ? wahrscheinlich eher "movies tvshows concerts"

7 hours ago, scout210177 said:

mediaserver_only="only multi"

ist eine entweder / oder Einstellung, teste zum Start mal mit nur "only"

7 hours ago, scout210177 said:

rewrite_source="/data/mnt/user/Media"

hast du wohl schlecht abgeschrieben ;) da fehlt ein ":" dazwischen, "/data:/mnt/user/media" wäre korrekt.

Hinweis, hier reicht auch ein /data <> /mnt/user/media als mount in Jelly, außer da sind noch mehr darunter welche du nicht in Jelly sehen willst, ist jetzt egal, nur als Hinweis zu verstehen, hätte nicht alle einzelnen subfolders benötigt ;)

um Fehlermeldungen zu vermeiden, noch wie folgt im Unraid Terminal

mkdir /mnt/user/system/mover/

touch /mnt/user/system/mover/mover_excl.txt

touch /mnt/user/system/mover/mover_ignore.txt

was sollte jetzt passieren

du spielst eine Datei in Jelly ab, alle volle 10 Minuten (cron) prüft das plugin ob etwas abgespielt wird, wenn ja, wartet das plugin 120 Sekunden (wait time) ob es immer noch abgespielt wird, wenn ja, dann kopiert das plugin den Ordner samt Inhalt auf den "mediacache", wechselt direkt im Hintergrund den Zugriff von HDD > SSD. Der Film wird jetzt vom cache abgespielt anstelle disk, die disk geht nach N Minuten (global disk settings) wieder in den sleep.

bei einem Film, den Filmordner halt (Achtung, alle Filme sollten in Ihren eigenen Ordner liegen), bei Serien, den Staffel Ordner (auch hier, Staffeln gehören in Ihre eigenen Ordner).

../media/movies/Film Name/my.film.mkv

..media/tvshows/Show Name/Season 00/my.episode.mkv

sofern im "mediacache"was geschaut wird updatet das plugin die last access time, jetzt kommen die beiden ins Spiel

7 hours ago, scout210177 said:

time_keephours="24"

7 hours ago, scout210177 said:

clean_cron="5 7 * * *"

sollte der letzte Zugriff > 24 Stunden sein, wird morgens um 07.05 der Ordner aus dem "mediacache" wieder entfernt.

dafür wäre jetzt die "secondary Regel" wenn man beispielsweise

Filme > geschaut > weg

Serien > angefangen > aber nicht täglich da was schaut ... > länger vorhalten will

pass mal an und schau ;)

  • Author

wollte jetzt das von dir angesprochene ändern, nun geht aber, wenn ich auf APPLY klicke, ein neues Fenster auf: "192.168.1.3:19443/update.php"

im Fenster vom Plugin ändert sich aber gar nichts

5 hours ago, scout210177 said:

wollte jetzt das von dir angesprochene ändern, nun geht aber, wenn ich auf APPLY klicke, ein neues Fenster auf: "192.168.1.3:19443/update.php"

im Fenster vom Plugin ändert sich aber gar nichts

das liegt wohl eher an "verzwickter" Konfiguration deines Servers und hat weniger mit dem plugin zu tun ;)

anscheinend nutzt du SSL im LAN oder was auch immer ...

  • Author
2 minutes ago, alturismo said:

das liegt wohl eher an "verzwickter" Konfiguration deines Servers und hat weniger mit dem plugin zu tun ;)

anscheinend nutzt du SSL im LAN oder was auch immer ...

Ist aber das einzigste Plugin bei dem das passiert 🫣 bei deinem Fan Plugin nicht.

Gut möglich das meine Konfig verzwickt ist, weil ich größtenteils nicht weiß was ich tue 🤣🤣 wird solange gebastelt bis es geht... Irgendwie

naja, im Notfall wenn du es testen willst ;) im terminal die benannten Änderungen vornahmen, nano ... speichern, auch ok ;)

nano /boot/config/plugins/cache-mover/cachemoversettings

  • Author

Mal das Protokoll vom Mover, irgendwo passt glaub etwas noch nicht sooooo ganz, kann das sein?

Oct 14 08:02:41 HouseOfData root: cache-mover: reg: Number of files: 95 (reg: 74, dir: 21)

Oct 14 08:02:41 HouseOfData root: cache-mover: reg: Number of created files: 94 (reg: 74, dir: 20)

Oct 14 08:02:41 HouseOfData root: cache-mover: reg: Number of deleted files: 0

Oct 14 08:02:41 HouseOfData root: cache-mover: reg: Number of regular files transferred: 74

Oct 14 08:02:41 HouseOfData root: cache-mover: reg: Total file size: 8.70G bytes

Oct 14 08:02:41 HouseOfData root: cache-mover: reg: Total transferred file size: 8.70G bytes

Oct 14 08:02:41 HouseOfData root: cache-mover: reg: Literal data: 8.70G bytes

Oct 14 08:02:41 HouseOfData root: cache-mover: reg: Matched data: 0 bytes

Oct 14 08:02:41 HouseOfData root: cache-mover: reg: File list size: 0

Oct 14 08:02:41 HouseOfData root: cache-mover: reg: File list generation time: 0.001 seconds

Oct 14 08:02:41 HouseOfData root: cache-mover: reg: File list transfer time: 0.000 seconds

Oct 14 08:02:41 HouseOfData root: cache-mover: reg: Total bytes sent: 8.70G

Oct 14 08:02:41 HouseOfData root: cache-mover: reg: Total bytes received: 1.55K

Oct 14 08:02:41 HouseOfData root: cache-mover: reg:

Oct 14 08:02:41 HouseOfData root: cache-mover: reg: sent 8.70G bytes received 1.55K bytes 220.16M bytes/sec

Oct 14 08:02:41 HouseOfData root: cache-mover: reg: total size is 8.70G speedup is 1.00

Oct 14 08:02:41 HouseOfData root: cache-mover: reg: open file Orphan Black - S01E02 - Instinkt.mkv will be switched mediacache now

Oct 14 08:02:42 HouseOfData root: cache-mover: reg: /mnt/mediacache/media/tvshows/Orphan Black (2013)/Season 1/Orphan Black - S01E02 - Instinkt.mkv

Oct 14 08:02:42 HouseOfData root: cache-mover: reg: ready to switch live

Oct 14 08:02:43 HouseOfData root: cache-mover: reg: -: No such file or directory.

Oct 14 08:02:43 HouseOfData root: cache-mover: reg: (gdb) Attaching to process 15500

Oct 14 08:02:43 HouseOfData root: cache-mover: reg: [New LWP 22895]

Oct 14 08:02:43 HouseOfData root: cache-mover: reg: [New LWP 22893]

Oct 14 08:02:43 HouseOfData root: cache-mover: reg: [New LWP 22892]

Oct 14 08:02:43 HouseOfData root: cache-mover: reg: [New LWP 22889]

Oct 14 08:02:43 HouseOfData root: cache-mover: reg: [New LWP 22887]

Oct 14 08:02:43 HouseOfData root: cache-mover: reg: [New LWP 22885]

Oct 14 08:02:43 HouseOfData root: cache-mover: reg: [New LWP 15616]

Oct 14 08:02:43 HouseOfData root: cache-mover: reg: [New LWP 15615]

Oct 14 08:02:43 HouseOfData root: cache-mover: reg: [New LWP 15503]

Oct 14 08:02:43 HouseOfData root: cache-mover: reg: [New LWP 15501]

Oct 14 08:02:43 HouseOfData root: cache-mover: reg: [Thread debugging using libthread_db enabled]

Oct 14 08:02:43 HouseOfData root: cache-mover: reg: Using host libthread_db library "/lib64/libthread_db.so.1".

Oct 14 08:02:43 HouseOfData root: cache-mover: reg: 0x000015466e65b98e in __syscall_cancel_arch () from /lib64/libc.so.6

Oct 14 08:02:43 HouseOfData root: cache-mover: reg: (gdb) $1 = 120

Oct 14 08:02:43 HouseOfData root: cache-mover: reg: (gdb) $2 = 121

Oct 14 08:02:43 HouseOfData root: cache-mover: reg: (gdb) $3 = 0

Oct 14 08:02:43 HouseOfData root: cache-mover: reg: (gdb) Detaching from program: /usr/libexec/unraid/shfs, process 15500

Oct 14 08:02:43 HouseOfData root: cache-mover: reg: [Inferior 1 (process 15500) detached]

Oct 14 08:02:44 HouseOfData root: cache-mover: msm: update access time: /mnt/mediacache/media/tvshows/Orphan Black (2013)/Season 1##

Oct 14 08:02:43 HouseOfData root: cache-cleaner: touch: missing file operand

Oct 14 08:02:43 HouseOfData root: cache-cleaner: Try 'touch --help' for more information.

Oct 14 08:02:43 HouseOfData root: cache-cleaner: touch: missing file operand

Oct 14 08:02:43 HouseOfData root: cache-cleaner: Try 'touch --help' for more information.

Oct 14 08:02:43 HouseOfData root: cache-cleaner: chmod: missing operand after ‘777’

Oct 14 08:02:43 HouseOfData root: cache-cleaner: Try 'chmod --help' for more information.

Oct 14 08:02:43 HouseOfData root: cache-cleaner: chmod: missing operand after ‘777’

Oct 14 08:02:43 HouseOfData root: cache-cleaner: Try 'chmod --help' for more information.

Oct 14 08:02:43 HouseOfData root: cache-cleaner: sed: no input files

Oct 14 08:02:43 HouseOfData root: cache-cleaner: sed: no input files

1 minute ago, scout210177 said:

Mal das Protokoll vom Mover, irgendwo passt glaub etwas noch nicht sooooo ganz, kann das sein?

cache mover scheint zu passen, cleaner aber nicht ...

und das hast du auch umgesetzt ?

image.png

  • Author

cache mover scheint zu passen, cleaner aber nicht ...

1 hour ago, alturismo said:

und das hast du auch umgesetzt ?

Ja, sehe aber gerade, das der Mover in den Processing and Mover Tuning Einstellungen nichts eingetragen hat. Kann ich nun auch nicht, weil, wenn ich ja auf apply drücke, ein Fenster aufgeht.. ohne Änderungen zu übernehmen.. kann man das da auch per Terminal lösen?

image.png

49 minutes ago, scout210177 said:

.. ohne Änderungen zu übernehmen.. kann man das da auch per Terminal lösen?

du solltest eher mal schauen warum ... wie gesagt, das kommt nicht durch die plugins ;)

nano /boot/config/plugins/ca.mover.tuning/ca.mover.tuning.cfg

dort wäre die Einträge anzupassen

filelistf="yes"

filelistv="/mnt/user/system/mover/mover_tuning_excl.txt"

oder wenn du jetzt mein plugin meinst, nano wie oben beschrieben

move_excl="yes"

move_excl_list="/mnt/user/system/mover/mover_cache_excl.txt"

move_tune_list="/mnt/user/system/mover/mover_tuning_excl.txt"

target_keephours="user0"

  • Author

wenn ich "nano /boot/config/plugins/ca.mover.tuning/ca.mover.tuning.cfg" eingebe im Terminal, seh ich nur eine leere Datei..

zweifel nicht daran das es nicht am Plugin liegt, ABER es ist das einzigste Plugin, oder sagen wir mal besser: die einzigste Seite auf der das passiert. Auch mit Firefox und Edge getestet.

Gestern ging noch alles problemlos, dann hab ich was im Plugin verstellt, allerdings weiß ich auch nicht mehr was das war... danach ging es nicht mehr.

Habs dann mehrfach de- und reinstalliert, ohne Erfolg. Auch ein Reboot hat nichts gebracht.

Edited by scout210177

14 minutes ago, scout210177 said:

wenn ich "nano /boot/config/plugins/ca.mover.tuning/ca.mover.tuning.cfg" eingebe im Terminal, seh ich nur eine leere Datei..

ich hole mal aus, hast du mover tuning installiert ?

Hintergrund, das ist ein separates plugin womit man den mover "manipulieren" kann, mit dem "spiele" ich zusammen um exclusions zu setzen.

Aber bevor du hier weiter testest, setz den mkdir und die 2 touch Befehle ab, damit sollten die Fehler erstmal erschlagen sein.

und der mover sollte mittlerweile existierende skippen, daher nicht tragisch ...

  • Author

Mover Tuning hatte ich nicht installiert, du meintest oben irgendwo, der wäre optional. kann ich aber nachholen wenn du meinst es läuft damit alles runder :) 

mkdir und die 2 Touch's sind gesetzt

Edit: Nachdem ich per Konsole "move_excl...." eingegeben habe, kann ich auch wieder auf APPLY oder SET CRON drücken, ohne das ein weiteres Fenster aufgeht...

Edit2: Dafür macht der Mover aber jetzt nichts mehr :D :D Schreibt auch keine LOGs

Edited by scout210177
Nachtrag

  • Community Expert

@alturismo

das Plugin kannte ich noch gar nicht, sieht aber sehr nützlich aus 👍

ich habe ein paar Fragen:

  1. ist es zwingende Voraussetzung, dass Mediendateien in separaten Ordnern liegen oder kann das Plugin nicht auch nur die abgespielte Datei kopieren? (ich habe aktuell einen großen Ordner mit viiielen Dateien)

  2. ich würde gerne einen separaten Pool nehmen, auf dem der Mover nicht arbeitet (also nicht den primary-Storage des Medienshares), demnach würde ich die Einstellungen zum Mover-tuning einfach auslassen (das meintest du mit optional, richtig?) - das Plugin löscht die Medien dann dort einfach nach Ablauf des keepalives, oder?

  3. wie funktioniert das "live Switching"? Bemerkt man eine (kurze) Unterbrechung/Ruckler im Stream?

  • Author

Zu 3. kann ich dir zumindest sagen, keine Ruckler bei mir, weder im Browser, noch im VLC oder der Nvidia Shield.

Normalerweise speichern Abspieler ja auch eine gewisse Menge Daten vor

  • Community Expert
29 minutes ago, scout210177 said:

Normalerweise speichern Abspieler ja auch eine gewisse Menge Daten vor

Das hab ich gehofft, dass das im Puffer untergeht....

Das funktioniert aber nur ab unraid 7, richtig? würde mich auch interessieren wie @alturismo das technisch gelöst hat 🤔

1 hour ago, _alo_ said:

ist es zwingende Voraussetzung, dass Mediendateien in separaten Ordnern liegen oder kann das Plugin nicht auch nur die abgespielte Datei kopieren? (ich habe aktuell einen großen Ordner mit viiielen Dateien)

image.png

empfohlen, ja, hab aber mal eingebaut das auch nur single file geht.

1 hour ago, _alo_ said:

wie funktioniert das "live Switching"? Bemerkt man eine (kurze) Unterbrechung/Ruckler im Stream?

Eingriff am "Herz" ;) file descriptor im Hintergrund wird umgeschrieben, funktioniert auch komplett ohne Aussetzer bei live streams ohne Puffer, Echtzeit ...

natürlich NUR wenn die dann read disk auch schnell ist (ssd)

1 hour ago, _alo_ said:

ich würde gerne einen separaten Pool nehmen, auf dem der Mover nicht arbeitet (also nicht den primary-Storage des Medienshares), demnach würde ich die Einstellungen zum Mover-tuning einfach auslassen (das meintest du mit optional, richtig?) - das Plugin löscht die Medien dann dort einfach nach Ablauf des keepalives, oder?

das wird komplexer ...

technisch, ja, praktikabel, Nein.

simples Beispiel, Plex hat ja die "separate" disk nicht in seinem mount, was passiert jetzt ...

während du einen Film abspielst, solange der am Stück dann durchläuft würde das copy, switch, ... funktionieren, aber sobald du Pause drückst, oder später weiterschauen willst, oder bei einer Serie die nächste Episode schaust, öffnet Plex die Ihr bekannte Datei welche nicht auf dem separaten cache liegt da Plex davon nichts weiß.

aber das clean Verhalten wird generell bei Punkt 1 und Punkt 2 ggf. beeinträchtigt, bei 1. auf jeden Fall, weil ...

bevor ich die Kopie lösche gleiche ich source / target ab falls es Änderungen gab ... und sende dann nur eine Warnung und lösche nicht wenn abweichend ...

warum, Beispiel, aktive Serie liegt auf cache > pool, teilweise bereits im array, jetzt wird was geschaut, wird in cache geschoben, neue Folgen kommen dazu (liegen erstmal nur im cache), dann will ich den nicht löschen ... nur als Beispiel.

für 2. habe ich einen workaround beschrieben im Zusammenspiel mit mergerfs um so etwas zu realisieren, UAD devices und / oder multiple pseudo arrays usw usw ...

  • Community Expert

vielen Dank für die Infos

7 minutes ago, alturismo said:

simples Beispiel, Plex hat ja die "separate" disk nicht in seinem mount, was passiert jetzt ...

ja ok, stimmt, hab ich nicht bedacht 😕

Dann nehme ich doch besser den cache vom cache>pool share.

Mir geht es tatsächlich nur um Filme über Jellyfin (keine Serien) also einzelne Files.

19 minutes ago, alturismo said:

hab aber mal eingebaut das auch nur single file geht.

danke 🙇‍♂️

  • 2 weeks later...

Hallo @alturismo ,

bitte nicht böse sein, oder lachen... Ich kenne mich mit programmieren gar nicht aus, hatte aber ein Problem, was dann eine KI für mich gelöst hat.

Erst das einfachere:

Dieser Fehler: cache-mover: msm: /usr/local/emhttp/plugins/cache-mover/scripts/cache_mover1: line 141: [: ==: unary operator expected

Dieser Fehler kommt auch bei cache_mover2 in einer anderen Zeile vor....

Hier sollte ich if [ $rsync_mode == "file" ]; then

abändern in if [ "$rsync_mode" == "file" ]; then

Dann hatte ich noch ein Problem, daß ich bei einer Serie 2 fast gleichlautende Verzeichnisse habe.

The Expanse (2015) und dann noch aus einer Konvertierung zum Test: The Expanse (2015) AV1

Hier hat deine Suchlogik die Verzeichnisse zusammengeschoben.

rsync: [sender] change_dir "/mnt/disk2/medien/Serien/The Expanse (2015)/Season 3/The Expanse - S03E06 - Aufopferung.mkv\#012/mnt/disk2/medien/Serien/The Expanse (2015) AV1/Season 3" failed: No such file or directory (2)

(Hier hatte ich noch nicht eingestellt, daß der ganze Ordner verschoben werden soll)

So ein verwursteltes Verzeichnis habe ich auch anderswo schon gesehen im Forum.

Hauptproblem sei Zeile 96-100

filename=$(basename "$openfile")

filename_search=$(echo $filename | sed 's/[^a-zA-Z0-9]/*/g')

diskpath=$(find /mnt/disk* -type f -name "$filename_search")

diskname=$(echo $diskpath | awk '{ print $1; }' | cut -f 3 -d "/")

if [ "$diskname" == "disks" ]; then

subdisk=$(echo $diskpath | awk '{ print $1; }' | cut -f 4 -d "/")

diskname="$diskname/$subdisk"

fi

Das Problem: Wenn find mehrere Dateien findet (weil du zwei ähnliche Verzeichnisse hast: "The Expanse (2015)" und "The Expanse (2015) AV1"), werden alle gefundenen Pfade in die Variable $diskpath geschrieben - mit Zeilenumbrüchen dazwischen.

Das führt dann dazu, dass später bei rsync_source=$(dirname "$diskpath") ein Pfad mit eingebautem Zeilenumbruch (\#012) entsteht, genau wie in deinem Log zu sehen.

Diese habe ich ersetzt durch:

filename=$(basename "$openfile")

filename_search=$(echo $filename | sed 's/[^a-zA-Z0-9]/*/g')

# Find all matches and filter to get only the exact directory match

diskpath=$(find /mnt/disk* -type f -name "$filename_search" | grep -F "$directory" | head -n 1)

# Fallback if exact directory match fails

if [ -z "$diskpath" ]; then

diskpath=$(find /mnt/disk* -type f -name "$filename_search" | head -n 1)

fi

diskname=$(echo "$diskpath" | cut -f 3 -d "/")

if [ "$diskname" == "disks" ]; then

subdisk=$(echo "$diskpath" | cut -f 4 -d "/")

diskname="$diskname/$subdisk"

fi

Die wichtigsten Änderungen:

  1. grep -F "$directory" filtert die find-Ergebnisse, um nur den Pfad zu nehmen, der zum korrekten Verzeichnis (mit oder ohne "AV1") passt

  2. head -n 1 stellt sicher, dass nur ein Ergebnis genommen wird (keine Zeilenumbrüche mehr in der Variable)

  3. Fallback falls die exakte Directory-Suche fehlschlägt

  4. Anführungszeichen um $diskpath bei der Zuweisung von diskname, um Fehler zu vermeiden

Das sollte das Problem mit den zwei ähnlichen Verzeichnisnamen lösen.

Zumindest hat es danach funktioniert... Ich habe nun von jedem Verzeichnis etwas abgespielt und habe nun auch beide Verzeichnisse in der Tabelle "cached" aufgeführt so wie auch auf dem Cache wirklich liegen.

EDIT: Habe es gefunden. Hier sind die Verzeichnisnamen wahrscheinlich auch zu ähnlich:

https://forums.unraid.net/topic/181843-support-alturismo-repos/?&do=findComment&comment=1584779

Oct 18 10:10:04 Exa root: cache-mover: msm: rsync: [sender] change_dir "/mnt/disk1/data/movies/How to Train Your Dragon (2010)/How to Train Your Dragon.mp4\#012/mnt/disk1/data/movies/How to Train Your Dragon 2 (2014)/How to Train Your Dragon 2.mp4\#012/mnt/disk1/data/movies/How to Train Your Dragon Homecoming (2019)/How to Train Your Dragon Homecoming.mp4\#012/mnt/disk1/data/movies/How to Train Your Dragon The Hidden World (2019)/How to Train Your Dragon The Hidden World.mp4\#012/mnt/disk1/data/movies/How to Train Your Dragon (2025)" failed: No such file or directory (2)

Edited by mmm77

2 hours ago, mmm77 said:

Das sollte das Problem mit den zwei ähnlichen Verzeichnisnamen lösen.

ich habe bereits ein rewrite hier bedingt durch zfs Themen usw ... mehrere Medienserver und check free space ahead.

ich kann das übrigens hier nicht reproduzieren, außer der Dateiname ist auch identisch an 2 Stellen auf den eingebundenen disks ... was ich tatsächlich nicht beachte und wahrscheinlich auch nicht werde, der Sinn dahinter erschließt sich mir nicht ;) vielleicht es mit dem nächsten Update erledigt.

ansonsten, Danke, aber ist nicht mehr aktuell, wenn du später immer noch Themen hast nach dem nächsten Update, kannst du gerne nochmals die KI bemühen ;)

  • 4 months later...

Ahoi,

ich nutze Plex und bin kürzlich auch auf dieses nice PlugIn gestoßen.
Mein Problem ist, dass das Array nicht in den SpinDown geht, sondern einfach weiter von der HDD gelesen wird.
Filme und Serien werden in den Cache kopiert, aber das war auch schon alles.

cat /boot/config/plugins/cache-mover/cachemoversettings

disks=""

pool="cache"

subfolders="Filme Serien"

filetypes=".mkv .mp4 .ts"

wait_todo="15"

move_excl="yes"

move_excl_list="/mnt/cache/system/mover_excl.txt"

move_tune_list="/mnt/cache/system/mover_ignore.txt"

rsync_mode="copy"

rsync_move=""

rsync_copy="rsync --stats -azht --mkpath"

switch_mode="switch"

time_keephours="5"

time_keephours_sub="120"

subfolder_keep_sub="/Serien"

target_keephours="user0"

use_recycle="no"

recycle_folder=".Recycle.Bin"

unraid_note="yes"

unraid_syslog="yes"

script_cron="*/5 * * * *"

clean_cron="57 * * * *"

mediaserver_type="plex"

mediaserver_url="http"

mediaserver_host="192.168.178.13"

mediaserver_port="32400"

mediaserver_key=***************************

mediaserver_only="multi"

exclusions=""

rewrite_source="/data/:/mnt/user/movie/"

script_cron_state="started"

clean_cron_state="started"

cat /boot/config/shares/media.cfg

?????? cat: /boot/config/shares/media.cfg: No such file or directory ?????

grafik.png

Leider bin ich hier nicht wirklich firm in der Materie....

11 minutes ago, LootfinGER said:

Leider bin ich hier nicht wirklich firm in der Materie....

alles gut ;)

mal vorne angefangen, je nachdem was für ein pool das ist (zfs ist kritisch), ein config Fehler, dein remapping im plugin ist falsch, das /movie/ ist zu viel.

12 minutes ago, LootfinGER said:

rewrite_source="/data/:/mnt/user/movie/"

image.png

das korrigieren, dann umstellen auf

13 minutes ago, LootfinGER said:

mediaserver_only="multi"

only ...

aktuell wird das plugin die Aktivität erkennen (multi mode), aber da das plex rewriting nicht funktionieren kann wird auch nie "umgeschaltet"

sollte es "eigentlich" gewesen sein.

Hm... nö, der holt das Array immer noch aus dem SpinDown und ließt fleißig weiter davon.
grafik.png
Das File-System auf dem Array ist XFS...habe ich damals wahrscheinlich in meiner grenzenlosen Unwissenheit so eingerichtet. Hätte wahrscheinlich BRTFS sein müssen...oder hab ich hier grundsätzlich irgendeine andere Verkettung ungünstiger Umstände?

Die Ordner "Filme" & "Serien" liegen im übergeordneten Ordner "movie". M.E. müsste das Verzeichnis dann doch "/mnt/user/movie/" sein.
grafik.png
Der Pool:
grafik.png
grafik.png

Edited by LootfinGER

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.