
Linux システムで transmission-gtk BitTorrent クライアント (v2.94) を使用して、Linux ディストリビューション ISO や LibreOffice バージョンなどのファイルをシードするとします。基本的な「保存先」が で、/path1/torrents
不完全なトレント パスが であるとします/path1/torrents/incomplete
。
ここで、transmission-gtk をシャットダウンし、名前/path1
を に変更します/path2
(古いパスを新しいパスにシンボリックリンクしないでください)。
アプリの設定ダイアログまたは を使用して、今後のトレントの場所を変更するのは簡単です$HOME/.config/transmission
。ただし、これを行うと、以前にアクティブだったすべてのトレントが赤でマークされ、データが失われたように見えます。
既存のトレント(完全および不完全)の場所を修正するにはどうすればよいでしょうか。また、これを何らかの方法で自動化して、コマンド ラインから実行できるようにすることはできますか(たとえば、 内のファイルに対して$HOME/.config/transmission/resume
)?
答え1
トレントを右クリックし、「場所の設定」をクリックして、新しい親ディレクトリ (/path2/torrents
この場合は ) を選択します。すべてのトレントが同じディレクトリに移動されている場合は、一度にすべてのトレントに対してこれを実行できます。
場所を更新した後、もう一度右クリックして「ローカル データの検証」を選択し、Transmission がどのファイル/部分がすでにダウンロードされているかを再確認できるようにします。
これは CLI から自動化できますが、まず Transmission の「Web UI」機能を有効にして、 も使用できるようにしますtransmission-remote
。
各トレントに対して、transmission-remote --find
新しい親ディレクトリで実行します。
~/.config/transmission/resume/ 内のファイルは、.torrent ファイル自体と同じ「Bencode」形式であり、たとえば Perl の Convert::Bencode や非常に慎重な sed の使用によって変更できる可能性がありますが、その方法を推奨するかどうかはわかりません。
トップレベルの辞書の「destination」項目を更新する必要があります。
$ bencode2json < 16a3968b347a81845384394e7f1b38656aeee97a.resume | head
{
"activity-date": "1619012434",
"added-date": "1619011497",
"bandwidth-priority": "0",
"corrupt": "0",
"destination": "/home/xxx/Downloads",
"dnd": [
...
19:/home/xxx/Downloads
(直接バイナリ編集を行う場合、Bencoded 文字列の先頭に長さが付けられ、この場合はその長さも更新する必要があることに注意してください。)
答え2
@user1686 の素晴らしい回答への追加: すべてのトレントの場所を一度に更新できます。
- 「表示:」バーで「すべて」と「すべて」を選択します (すべてのトレントが表示されるように)。
- 表示されているすべてのトレントを選択するには、Ctrl + A を押します。
- 選択したトレントのいずれかを右クリックします。
- 「場所の設定」を選択します。
- 「その他」を選択します。
- トレントの新しいフォルダ(この場合は「/path2/torrents」)に移動します。
- 「ローカルデータが既に存在します」を選択します。
- 「適用」をクリックします。
- トレントが更新されるまでしばらくお待ちください。
- ダイアログが消えたら、transmission-gtk を再起動します。
トレントはすべて再開可能として認識されるはずです。ただし、実際に再開する必要があります。データが見つからない場合は自動的に一時停止されます。