私はしばらくの間、単一のディレクトリでrtorrentを使用しています。これで、別のディレクトリを使用したり、完了したダウンロードを別の場所に移動したりできることがわかったので、rtorrent wikiに従って、.rtorrent.rcを次のように編集しました:
# Download directory
directory = /Medias/torrents/
# Watching directories
schedule = watch_directory_1,5,60,"load_start=/path/to/dl/dir1/*.torrent,d.set_custom1=/path/to/done/dir1"
schedule = watch_directory_2,5,60,"load_start=/path/to/dl/dir2/*.torrent,d.set_custom1=/path/to/done/dir2"
# On completion, move the torrent to the directory from custom1.
system.method.set_key = event.download.finished,move_complete,"d.set_directory=$d.get_custom1= ;execute=mv,-u,$d.get_base_path=,$d.get_custom1="
それは新しい急流のために働くようです。しかし、ディレクトリを分割するために以前にダウンロードした完成したファイルがたくさんあり、それらは機能しません。セッションディレクトリでファイルを削除すると、rtorrentはハッシュをチェックしますが、移動しません。それらを自分で移動すると、rtorrentはそれらを表示せず、再ダウンロードしようとします。
では、どうすればrtorrentにそれらを移動するか、または別のディレクトリにあることを伝えることができますか?
ありがとう。
わかりました、これを理解しました。 rtorrent内では、次を使用してコマンドラインを開くことができます。 Ctrl+X。印刷(print=$variable=
、たとえばprint=$d.get_directory=
)、コマンドの実行(execute=command
)、変数の設定(variable=newvalue
)。
このプロンプトから、完成した急流を別の場所に移動できますが、それは必要でも十分でもないことに注意してください(以下を参照)。たとえば、元の質問で与えられた.rtorrent.rcファイルの例を使用すると、次のようになります。
execute=mv,-u,$d.get_base_path=,$d.get_custom1=
ただし、このコマンドは、rtorrentがtorrentをシードし続けることを防ぐため、十分ではありません。シードを続行するには、このコマンドプロンプトから、このトレントのダウンロードディレクトリを新しい場所に設定する必要があります。
d.set_directory=/path/to/new/directory/
最後に、execute
コマンドは必要ありません。上で説明したように新しいディレクトリを設定している限り、トレントを好きなように(つまり、rtorrent外に)移動できます。
その後、次を使用してトレントを再度開く必要がある場合があります([閉じる]とマークされている場合)。 Ctrl+R。
bashスクリプトとして:
編集、mv -u $old $new
が失敗すると、コマンド全体が失敗します。
私は、rTorrentをqBitTorrentに任せた。
#!/bin/bash
#
# move files in rTorrent
# with rtxmlrpc from pyrocore
#
# 1. select all torrents from view $view
# 2. print old d.base_path
# 3. set new d.directory
# torrent is closed
# d.base_path is still old d.base_path
# 4. move old files to new dir
# 5. open torrent
# d.base_path is set to new path
# 6. save output to text file
view='complete'
dest="/home/rtorrent/$view/"
# escape double quotes
dest=$(echo "$dest" | sed 's/"/\\"/g')
rtxmlrpc d.multicall2 '' "$view" \
'd.base_path=' \
"d.directory.set=\"$dest\"" \
"execute=mv,-u,(d.base_path),\"$dest\"" \
'd.open=' \
| tee rtxmlrpc.$(date +%s).txt
シンボリックリンクにアレルギーがない場合、1つの方法は rtmv です。