rTorrent: Multiple watch-Ordner und fertige Downloads managen

Wenn wir heute schon beim Thema sind, möchte ich an dieser Stelle noch auf einen Tipp aus dem Wiki von Arch Linux zum Thema rTorrent hinweisen. Ich wusste, dass rTorrent verschiedene Ordner auf Torrents überwachen konnte. Mit einer weiteren Einstellung lassen sich die heruntergeladenen Dateien nach einem bestimmten Download/Upload-Verhältnis dann in vorher definierte Ordner verschieben.

Was mir jedoch fehlte, war die Möglichkeit einen schon fertigen Download nach einer Weile erneut zu seeden, indem ich lediglich den Torrent in den „watch“-Ordner kopierte und dann die komplette Datei von rTorrent automatisch erkannt und entsprechend verschoben wurde. Problematisch ist bei diesem Client jedoch, dass eine 100% fertige Datei, auf die rTorrent nachträglich aufmerksam gemacht wird, nicht automatisch verschoben werden kann. Dachte ich bis vor kurzem.

Für dieses spezielle Problem gibt es aber seit Version 0.8.6 eine Lösung. Ich bin mir nicht sicher, ob der Patch damals schon Eingang in Debian Squeeze gefunden hat, mit der aktuellen 0.8.9 Version in Unstable funktioniert es aber prächtig.

In der .rtorrent.rc sollten folgende Zeilen zu dem schon vorgestellten Setup hinzugefügt werden und ggf. meine alte system.method Zeile deaktiviert werden.

schedule = watch_directory_1,10,10,"load_start=~/downloads/watch/*.torrent,d.set_custom1=~/downloads/fertig/"
schedule = watch_directory_2,10,10,"load_start=~/downloads/watch/linux/*.torrent,d.set_custom1=~/downloads/fertig/Linux/"

system.method.insert=checkdirs1,simple,"not="$equal={d.get_custom1=,d.get_base_path=}""
system.method.insert=movecheck1,simple,"and={checkdirs1=,d.get_complete=,d.get_custom1=}"
system.method.insert=movedir1,simple,"d.set_directory=$d.get_custom1=;execute=mv,-u,$d.get_base_path=,$d.get_custom1=;d.set_custom1=;d.stop=;d.start="
system.method.set_key=event.download.hash_done,move_hashed1,"branch={$movecheck1=,movedir1=}"

Die Konfiguration scheint auf den ersten Blick etwas kryptisch zu sein, im Prinzip macht sie aber nur folgendes:

Zeile 1+2: Hier werden zwei verschiedene Ordner auf neue Torrents überwacht. Sobald hier ein neues Torrent hin verschoben wird und rTorrent läuft, beginnt automatisch der Download/Upload-Vorgang. Nach der Fertigstellung wird das Ergebnis je nach dem in welchem Ordner die Torrents gespeichert wurden, nach ~/downloads/fertig/ oder ~/downloads/fertig/Linux/ gespeichert.

Zeile 4: Überprüft ob das Torrent sich schon im Ziel Ordner befindet (false) oder eben woanders liegt (true).
Zeile 5: Überprüft ob das Torrent zu 100% komplett ist, der Wert aus Zeile 4 true zurückliefert und die Variable custom1 (der Zielpfad) existiert.
Zeile 6: Auf Basis der Ergebnisse aus Zeile 4+5 wird die fertige Datei in den Zielordner verschoben, rTorrent erkennt, dass das geschehen ist und verteilt den Download ab sofort aus dem neuen Zielordner.

Zeile 7: Wenn ein Torrent gehasht wird und in Ordnung ist, wird Zeile 6 ausgeführt. Zeile 7 ist also wichtig, falls eine Überprüfung des Torrents stattfindet. Alle Zeilen davor funktionieren auch, wenn kein Hashing mehr notwendig ist.

Mit diesen Zeilen kann ich also ein fertiges Linux ISO in den „todo“-Ordner verschieben und rTorrent erkennt an dem Ort der Torrent-Datei, wohin diese fertige Datei verschoben werden muss und seedet danach entsprechend meiner Einstellung weiter.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.