
Angenommen, Sie verwenden den BitTorrent-Client transmission-gtk (v2.94) auf einem Linux-System, um einige Dateien zu seeden, z. B. Linux-Distributions-ISOs und LibreOffice-Versionen. Angenommen, der grundlegende „Speicherort“ lautet: /path1/torrents
und der unvollständige Torrent-Pfad lautet /path1/torrents/incomplete
.
Nehmen Sie nun an, dass Sie Transmission-GTK beenden und umbenennen /path1
( /path2
und keinen symbolischen Link vom alten Pfad zum neuen erstellen).
Es ist ganz einfach, den Speicherort für zukünftige Torrents über den Konfigurationsdialog der App oder in zu ändern $HOME/.config/transmission
. Wenn man dies jedoch tut, werden alle zuvor aktiven Torrents nun rot markiert und es wird angenommen, dass Daten fehlen.
Was muss man tun, um die Speicherorte für vorhandene Torrents (vollständig und unvollständig) zu korrigieren? Und – kann dies irgendwie automatisiert werden, sodass es über die Befehlszeile erfolgen kann (z. B. für Dateien in $HOME/.config/transmission/resume
)?
Antwort1
Klicken Sie mit der rechten Maustaste auf den Torrent, klicken Sie auf „Speicherort festlegen“ und wählen Sie das neue übergeordnete Verzeichnis ( /path2/torrents
in diesem Fall). Sie können dies für alle Torrents gleichzeitig tun, wenn sie alle in dasselbe Verzeichnis verschoben wurden.
Nach der Aktualisierung des Speicherorts können Sie durch erneuten Rechtsklick und Auswahl von „Lokale Daten überprüfen“ erneut prüfen, welche Dateien/Teile bereits heruntergeladen wurden.
Dies lässt sich über die CLI automatisieren. Aktivieren Sie dazu jedoch zunächst die Funktion „Web-UI“ in Transmission, die Ihnen auch die Verwendung ermöglicht transmission-remote
.
Führen Sie jeden Torrent transmission-remote --find
mit dem neuen übergeordneten Verzeichnis aus.
Die Dateien in ~/.config/transmission/resume/ liegen im selben „Bencode“-Format vor wie die .torrent-Dateien selbst und könnten wahrscheinlich beispielsweise mit Perls Convert::Bencode oder sehr sorgfältigem sedieren geändert werden, aber ich bin nicht sicher, ob ich diese Methode empfehlen würde.
Sie möchten das Element „Ziel“ im Wörterbuch der obersten Ebene aktualisieren:
$ bencode2json < 16a3968b347a81845384394e7f1b38656aeee97a.resume | head
{
"activity-date": "1619012434",
"added-date": "1619011497",
"bandwidth-priority": "0",
"corrupt": "0",
"destination": "/home/xxx/Downloads",
"dnd": [
...
(Wenn Sie die direkte Binärbearbeitung verwenden, beachten Sie, dass Bencoded-Zeichenfolgen mit ihrer Länge als Präfix versehen sind, die beispielsweise in diesem Fall ebenfalls aktualisiert werden muss 19:/home/xxx/Downloads
.)
Antwort2
Eine Ergänzung zur tollen Antwort von @user1686: Sie können den Speicherort aller Torrents auf einmal aktualisieren:
- Wählen Sie „Alle“ und dann „Alle“ in der Leiste „Anzeigen:“ (damit alle Torrents sichtbar sind).
- Drücken Sie Strg+A, um alle sichtbaren Torrents auszuwählen.
- Klicken Sie mit der rechten Maustaste auf einen der ausgewählten Torrents.
- Wählen Sie „Standort festlegen“.
- Wählen Sie „Andere“.
- Navigieren Sie zum neuen Ordner für Torrents (in Ihrem Fall „/Pfad2/torrents“).
- Wählen Sie „Lokale Daten sind bereits vorhanden“.
- Klicken Sie auf "Übernehmen".
- Warten Sie einen Moment, bis die Torrents aktualisiert sind.
- Wenn der Dialog verschwunden ist, starten Sie transmission-gtk neu.
Ihre Torrents sollten alle als fortsetzbar erkannt werden. Sie müssen sie allerdings trotzdem fortsetzen – sie werden automatisch angehalten, wenn die Daten nicht gefunden werden konnten.