「RTorrent」の版間の差分
(→完了したファイルの管理: 情報を更新) |
(他言語へのリンクを修正) |
||
2行目: | 2行目: | ||
[[Category:BitTorrent]] |
[[Category:BitTorrent]] |
||
[[en:RTorrent]] |
[[en:RTorrent]] |
||
− | [[es:RTorrent]] |
||
− | [[ru:RTorrent]] |
||
[[zh-hans:RTorrent]] |
[[zh-hans:RTorrent]] |
||
[https://rakshasa.github.io/rtorrent/ rTorrent] は迅速に動作する BitTorrent クライアントです。開発面では、libTorrent ライブラリを使用しています ({{Pkg|libtorrent-rasterbar}} とは違います)。rTorrent は C++ を使って書かれており、[[Wikipedia:ja:ncurses|ncurses]] プログラミングライブラリを利用したテキストユーザーインターフェイスがあります。ターミナルマルチプレクサ (例: [[GNU Screen]] や [[Tmux]]) と [[Secure Shell]] を一緒に使うことで、便利なリモート [[Wikipedia:BitTorrent (protocol)#Operation|BitTorrent クライアント]]として活用できます。 |
[https://rakshasa.github.io/rtorrent/ rTorrent] は迅速に動作する BitTorrent クライアントです。開発面では、libTorrent ライブラリを使用しています ({{Pkg|libtorrent-rasterbar}} とは違います)。rTorrent は C++ を使って書かれており、[[Wikipedia:ja:ncurses|ncurses]] プログラミングライブラリを利用したテキストユーザーインターフェイスがあります。ターミナルマルチプレクサ (例: [[GNU Screen]] や [[Tmux]]) と [[Secure Shell]] を一緒に使うことで、便利なリモート [[Wikipedia:BitTorrent (protocol)#Operation|BitTorrent クライアント]]として活用できます。 |
||
206行目: | 204行目: | ||
以下のサービスは、サービスユニットの種類によって使用方法が異なります。 |
以下のサービスは、サービスユニットの種類によって使用方法が異なります。 |
||
− | '''システムサービスの場合''' |
+ | '''システムサービスの場合'''(/etc/systemd/system/ の中) |
ブート時に起動させる: |
ブート時に起動させる: |
||
400行目: | 398行目: | ||
</nowiki>}} |
</nowiki>}} |
||
− | 上記以外のファイルシステムでプリアロケーションを利用できるようにするには、 |
+ | 上記以外のファイルシステムでプリアロケーションを利用できるようにするには、(遅れはあるものの)次の新しいスイッチを使用して、[[ABS]] ツリーから libTorrent を再コンパイルすることで可能です。 |
$ ./configure --prefix=/usr --disable-debug --with-posix-fallocate |
$ ./configure --prefix=/usr --disable-debug --with-posix-fallocate |
||
674行目: | 672行目: | ||
例えば、rtorrent-magnet という名前で保存し、実行権限を与え、$PATH の下のどこかに配置します。次に、Firefox で |
例えば、rtorrent-magnet という名前で保存し、実行権限を与え、$PATH の下のどこかに配置します。次に、Firefox で |
||
# ロケーション バー (アドレス バー) に {{ic|about:config}} と入力し、{{ic|Enter}} キーを押します。 |
# ロケーション バー (アドレス バー) に {{ic|about:config}} と入力し、{{ic|Enter}} キーを押します。 |
||
− | # 右クリックする。''新規 > Boolean > Name: '''network.protocol-handler.expose.magnet''' と入力します。> 値 |
+ | # 右クリックする。''新規 > Boolean > Name: '''network.protocol-handler.expose.magnet''' と入力します。> 値> false'' です。 |
# 次回 magnet リンクをクリックすると、どのアプリケーションでそれを開くか尋ねられます。先ほど作成したスクリプトを選択すれば完了です。 |
# 次回 magnet リンクをクリックすると、どのアプリケーションでそれを開くか尋ねられます。先ほど作成したスクリプトを選択すれば完了です。 |
||
− | xdg-open で処理したい場合、Firefox の代わりに chrome を使用している場合は必要ですが、 |
+ | xdg-open で処理したい場合、Firefox の代わりに chrome を使用している場合は必要ですが、(gnome やその他の DE では xdg-open を上書きする独自のプログラムがあるかもしれません)rtorrent-magnet スクリプト用のデスクトップ エントリを {{ic|~/.local/share/applications/rtorrent-magnet.desktop}} に次の内容で作成する必要があります。 |
<nowiki> |
<nowiki> |
2023年11月25日 (土) 04:06時点における最新版
rTorrent は迅速に動作する BitTorrent クライアントです。開発面では、libTorrent ライブラリを使用しています (libtorrent-rasterbar とは違います)。rTorrent は C++ を使って書かれており、ncurses プログラミングライブラリを利用したテキストユーザーインターフェイスがあります。ターミナルマルチプレクサ (例: GNU Screen や Tmux) と Secure Shell を一緒に使うことで、便利なリモート BitTorrent クライアントとして活用できます。
目次
- 1 インストール
- 2 設定
- 3 キーバインディング
- 4 ヒントとテクニック
- 5 トラブルシューティング
- 6 ウェブインターフェイス
- 7 magnet を Torrent に変換
- 8 rtorrent-ps
- 9 PyroScope コマンドラインユーティリティ
- 10 参照
インストール
公式リポジトリの rtorrent パッケージを インストール してください。
非公式パッケージ
- rtorrent-gitAUR - Git main branch パッケージ
- rtorrent-psAUR - rtorrent-ps patchset ps パッチセットを含むリリースパッケージ
- rtorrent-pyro-gitAUR - Git feature-bind branch を含む rtorrent-ps patchset パッケージ
- rtorrent-vi-colorAUR - vi のようなキーバインディングを備えたリリースパッケージ
設定
rTorrent を実行する前に、サンプル設定ファイル /usr/share/doc/rtorrent/rtorrent.rc
を探して ~/.rtorrent.rc
にコピーしましょう:
$ cp /usr/share/doc/rtorrent/rtorrent.rc ~/.rtorrent.rc
パフォーマンス
以下のオプションの値はシステムのハードウェアやインターネットの接続速度に合わせます。最適値の見つけ方については次を読んでください: Optimize Your BitTorrent Download Speed
min_peers = 40 max_peers = 52 min_peers_seed = 10 max_peers_seed = 52 max_uploads = 8 download_rate = 200 upload_rate = 28
check_hash
オプションは torrent のダウンロードが完了した時や rTorrent が起動したときにハッシュチェックを行います。起動時に、完了済みのファイルに問題がないか確認します。
check_hash = yes
ファイルの作成と管理
directory
オプションには torrent データを保存するディレクトリを指定します (相対パスでも指定できます):
directory = ~/downloaded
session
オプションを使うことで rTorrent の torrent の進捗を保存することができます。ホームディレクトリにディレクトリを作成することが推奨されます (例: mkdir ~/.rtorrent.session
)。
session = ~/.rtorrent.session
schedule
オプションを設定すると rTorrent は新しい torrent ファイルが追加されないか特定のディレクトリを監視します。このディレクトリに torrent ファイルを保存すると、自動的にダウンロードが開始されます。かならず監視するディレクトリを作成してください (例: mkdir ~/watch
)。また、このオプションを使用すると、rTorrent が torrent ファイルをセッションフォルダに移動してハッシュ値に名前を変更するので注意してください。
schedule = watch_directory,5,5,load_start=/home/user/watch/*.torrent schedule = untied_directory,5,5,stop_untied= schedule = tied_directory,5,5,start_tied=
以下の schedule
オプションはディスク容量が少なくなった時に rTorrent がデータをダウンロードするのを止めさせます。
schedule = low_diskspace,5,60,close_low_diskspace=100M
ポート設定
port_range
オプションでは使用するポートを設定します。49152 以上のポート番号を使用することが推奨されます (参照: ポート番号の一覧)。rTorrent ではポートの範囲を指定することができますが、使用するポートは一つだけに絞ることが推奨されています。
port_range = 49164-49164
また、適切なポートのポートフォワーディングが有効になっていることを確認してください (参照: Port Forward guides)。
その他の設定
encryption
オプションは暗号化を有効化または無効化します。このオプションは、あなた自身だけのためではなく、torrent スウォームのピアのためでもあります。たとえセキュリティを上げる必要がなかったとしても、有効にすることに害はありません。
encryption = allow_incoming,try_outgoing,enable_retry
また、全ての接続で強制的に暗号化を使用することもできます。ただし、あまり厳しいルールを使用するとクライアントの可用性が減少していきます:
encryption = require,require_RC4,allow_incoming,try_outgoing
Wikipedia:BitTorrent Protocol Encryption も見て下さい。
最後に、dht
オプションは DHT のサポートを有効にします。DHT は主要なトラッカーで使われており、クライアントがより多くのピアを獲得できるようになります。
dht = auto dht_port = 6881 peer_exchange = yes
キーバインディング
rTorrent では専らキーボードショートカットを使って操作を行います。下のクイックレファレンスを参照してください。完全なガイドは rTorrent wiki にあります (参照: rTorrent User Guide)。
コマンド | 操作 |
---|---|
Ctrl-q | アプリケーションを終了 |
Ctrl-s | ダウンロードを開始。ハッシュが行われていない場合は先に実行 |
Ctrl-d | ダウンロードを停止または停止したダウンロードを削除 |
Ctrl-k | ファイルのダウンロードを停止して終了 |
Ctrl-r | torrent のハッシュチェックを開始。ダウンロード/アップロードは行わない。 |
Left | 前の画面に戻る |
Right | 次の画面に移る |
Backspace/Return | 指定した *.torrent を追加 |
a|s|d | 全体のアップロード速度を 1|5|50 KB/s 間隔で増やす |
A|S|D | 全体のダウンロード速度を 1|5|50 KB/s 間隔で増やす |
z|x|c | 全体のアップロード速度を 1|5|50 KB/s 間隔で減らす |
Z|X|C | 全体のダウンロード速度を 1|5|50 KB/s 間隔で減らす |
マッピングの重複
Ctrl-s
は画面の出力の停止に、Ctrl-q
は画面の出力の開始に使われるのがターミナルでは普通です。これらのマッピングが rTorrent と干渉してしまうことがあります。ターミナルのオプションがマッピングと関連付けられていないか確認してください:
$ stty -a
... swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; ...
マッピングを削除するには、ターミナルの特性を変更して前述の特殊文字列を定義します (つまり stop
と start
):
# stty stop undef # stty start undef
前述のコマンドを ~/.bashrc
ファイルに追加することで、起動時に自動的にマッピングを削除させることができます。
ヒントとテクニック
ヘッドレスサーバのための Systemd サービス
このユニット ファイルは、rtorrent という 1 人のユーザーの実行と、rtorrent がデーモンとして実行されるように設定することに依存しています。
次のファイルを作成します。
/etc/systemd/system/rtorrent.service
> [Unit] Description=rTorrent System Daemon After=network.target [Service] Type=simple User=rtorrent Group=rtorrent # Modify the next 2 lines to use absolute paths ExecStartPre=-/bin/rm -f /<home>/.session/rtorrent.lock ExecStart=/usr/bin/rtorrent -o import=/<home>/rtorrent.rc Restart=on-failure RestartSec=3 [Install] WantedBy=multi-user.target
ユーザーのためのデーモンとしての Systemd サービス
このユニットでは、複数のユーザー、または 1 人のユーザーが rtorrent をデーモンとして実行できるようにします。
ブート時に rtorrent を起動するには、有効 rtorrent@user
(user
は rtorrent を実行するユーザー) を指定します。
以下のファイルを作成します。
/etc/systemd/system/rtorrent@.service
[Unit] Description=rTorrent for %i After=network.target [Service] Type=simple User=%i Group=%i WorkingDirectory=/home/%i # Modify the next line to the absolute path for rtorrent.lock, for example ExecStartPre=-/bin/rm -f /home/%i/.session/rtorrent.lock ExecStart=/usr/bin/rtorrent -o system.daemon.set=true Restart=on-failure RestartSec=3 [Install] WantedBy=multi-user.target
tmux や screen を使った Systemd サービス
以下のサービスは、サービスユニットの種類によって使用方法が異なります。
システムサービスの場合(/etc/systemd/system/ の中)
ブート時に起動させる:
# systemctl enable rtorrent
手動で起動:
# systemctl start rtorrent
ストップ:
# systemctl stop rtorrent
rtorrent ユーザーが適切なホーム ディレクトリに作成され、rtorrent.rc が配置されていることを確認します。
ユーザーサービス (/etc/systemd/user/ の中):
$ systemctl --user enable rtorrent
手動で起動:
$ systemctl --user start rtorrent
ストップ:
$ systemctl --user stop rtorrent
screen を使用
- システム・サービス・ユニットとして
/etc/systemd/system/rtorrent.service
[Unit] Description=rTorrent After=network.target [Service] Type=forking KillMode=none User=rtorrent ExecStartPre=/usr/bin/bash -c "if test -e %h/.rtorrent_session/rtorrent.lock && test -z `pidof rtorrent`; then rm -f %h/.rtorrent_session/rtorrent.lock; fi" ExecStart=/usr/bin/screen -dmfa -S rtorrent /usr/bin/rtorrent ExecStop=/usr/bin/bash -c "test `pidof rtorrent` && killall -w -s 2 /usr/bin/rtorrent" WorkingDirectory=%h Restart=on-failure [Install] WantedBy=multi-user.target
- ユーザーサービスユニットとして
/etc/systemd/user/rtorrent.service
[Unit] Description=rTorrent After=network.target [Service] Type=forking KillMode=none ExecStart=/usr/bin/screen -dmfa -S rtorrent /usr/bin/rtorrent ExecStop=/usr/bin/killall -w -sユーザーのためのデーモンとしての Systemd サービス 2 /usr/bin/rtorrent WorkingDirectory=%h [Install] WantedBy=default.target
rtorrent のセッションにアタッチします。
screen -D -r rtorrent
tmux を使用
- 独立した tmux サーバー付き (クラッシュした場合は rtorrent を再起動)
~/.config/systemd/user/rtorrent.service
[Unit] Description=rtorrent After=network.target [Service] Type=forking ExecStartPre=/usr/bin/bash -c "if test -e ~/.session/rtorrent.lock && test -z `pidof rtorrent`; then rm -f ~/.session/rtorrent.lock; fi" ExecStart=/usr/bin/tmux -L rt new-session -s rt -n rtorrent -d rtorrent ExecStop=/usr/bin/bash -c "/usr/bin/tmux -L rt send-keys -t rt:rtorrent.0 C-q; while pidof rtorrent > /dev/null; do echo stopping rtorrent...; sleep 1; done" Restart=on-failure [Install] WantedBy=default.target
- tmux をユーザー rtorrent として実行した場合 (クラッシュした場合は rtorrent を再起動)
/etc/systemd/system/rtorrent.service
[Unit] Description=rTorrent Daemon After=network.target [Service] Type=forking KillMode=none User=rtorrent ExecStart=/usr/bin/tmux new-session -c /mnt/storage/rtorrent -s rtorrent -n rtorrent -d rtorrent ExecStop=/usr/bin/bash -c "/usr/bin/tmux send-keys -t rtorrent C-q && while pidof rtorrent > /dev/null; do sleep 0.5; done" WorkingDirectory=%h Restart=on-failure [Install] WantedBy=multi-user.target
rtorrent のセッションにアタッチ:
tmux -L rt attach -t rt tmux attach -t rt
デタッチ:
Ctrl-b d
dtach を使った systemd サービスファイル
systemd 単位で dtach を実行する場合、rtorrent が動作するためには 環境変数 が明示的に設定されている必要があります。
このサービス ファイルには再起動がありません。これは、作者が問題のドライブをオフラインにすることがあり、このシナリオで起動すると rtorrent が失敗し、各トレントを格納する特定のディレクトリなど、多くのトレント固有の設定が失われるためです (最適化されていない と言うべきでしょうか) 実際、rtorrent を起動するシンボリック リンクは、関連ドライブに存在します。 rtorrent の起動をブロックするこの使用例は、NAS、USB、eSATA ドライブなどのリムーバブル メディアにダウンロードしたファイルを置くユーザーに関連するものです。
~/.config/systemd/user/rtorrent.service
[Unit] Description=rTorrent #After=network.target [Service] # set TERM according to your terminal Environment="TERM=xterm" #Environment="TERM=linux" Type=forking KillMode=none ExecStart=-/usr/bin/dtach -n /home/sam/run/dtach_fifos/fifo -e "^T" /home/sam/bin/rtr_new -n -o import=/home/sam/.config/rtorrent/new_.rc # dtach -n <separate filename for each instance> # # rtr_new -n to ignore the default .rtorrent.rc # rtr_new -o import to load the instance-specific rc ExecStop=-/usr/bin/killall -u sam -e -w -s INT /home/sam/bin/rtr_new [Install] WantedBy=multi-user.target
このサービスファイルには、dtach 以外にもいくつかの問題があることに注意してください。
/home/sam/bin/rtr_new
is a symlink to /usr/bin/rtorrent
これにより、複数のインスタンスを実行し、それぞれを異なるバージョンの ExecStop で個別に終了させることができます。
ExecStop=-/usr/bin/killall -u sam -e -w -s INT /home/sam/bin/rtr_new ExecStop=-/usr/bin/killall -u sam -e -w -s INT /home/sam/bin/rtr_academic ExecStop=-/usr/bin/killall -u sam -e -w -s INT /home/sam/bin/rtr_other_stuff
これらはそれぞれ別のサービスファイル内にあり、それぞれが1つのインスタンスを制御します。
このステップを実行しないと、複数のインスタンスを実行している場合、killall ソリューションにより実行中のすべての rtorrent インスタンスが削除されます。
複数の rtorrent インスタンスが不要で、rtorrent rc ファイルがデフォルトの場所にある場合、上記のサービス ファイルを簡略化することができます。 ファイル全体が含まれますが、ExecStart と ExecStop の行が変わります。
~/.config/systemd/user/rtorrent.service
[Unit] Description=rTorrent #After=network.target [Service] # set TERM according to your terminal Environment="TERM=xterm" #Environment="TERM=linux" # Type=forking is not required if ExecStart command is run using dtach -N (i.e dtach will run on foreground). Type=forking KillMode=none ExecStart=-/usr/bin/dtach -n /home/sam/run/dtach_fifos/fifo -e "^T" /usr/bin/rtorrent # dtach -n <user specified FIFO name> -e <user specified character> /usr/bin/rtorrent ExecStop=/usr/bin/killall -w -s INT /usr/bin/rtorrent # -e (exact match) and -u (user name) were added above to stop specific processes # and may be omitted here because only one rtorrent will be running [Install] WantedBy=multi-user.target
ExecStart=-/usr/bin/dtach` の部分にあるハイフンに注意してください。これは、失敗の終了コードも成功の終了を表すことができるようにするためです。これは現在の問題 [1] のためと思われます。代替案としては、サービスセクションで `SuccessExitStatus=1` を使用することです。
このサービスは systemctl --user で制御することができます。起動したら、セッションにアタッチすることができます。
$ dtach -a /home/sam/run/dtach_fifos/fifo -e "^T".
事前割り当て
rTorrent には、トレント用の領域を事前に割り当てる機能があります。主な利点は、ファイル システムの断片化を制限および回避できることです。ただし、ファイルシステムが fallocate システムコールをネイティブでサポートしていない場合、事前割り当て時に遅延が発生します。
したがって、このスイッチは、fallocate システムコールをネイティブでサポートしている xfs、ext4、btrfs、および ocfs2 ファイルシステムに推奨されます。これらのファイルシステムでは、事前割り当て時の遅延がなく、ファイルシステムが断片化することもありません。他のファイルシステムでの事前割り当ては、遅延は発生しますが、ファイルの断片化は起こりません。
これを有効にするには:
~/rtorrent.rc
# Preallocate files; reduces defragmentation on filesystems. system.file.allocate = 1
上記以外のファイルシステムでプリアロケーションを利用できるようにするには、(遅れはあるものの)次の新しいスイッチを使用して、ABS ツリーから libTorrent を再コンパイルすることで可能です。
$ ./configure --prefix=/usr --disable-debug --with-posix-fallocate
参照 the upstream documentation for further information
完了したファイルの管理
ウォッチフォルダあり
rtorrent は、シードを継続しながら、*.torrent をどの ウォッチ フォルダにドロップしたかに基づいて、完了したトレント データを特定のフォルダに整理することができます。
解決策として、~/.rtorrent.rc
で次の例を使用してください。必ずパスを変更してください。
# default path for in progress downloads directory = /home/user/torrents/incomplete # schedule a timer event named 'watch_directory_1': # 1) triggers 10 seconds after rtorrent starts # 2) triggers at 10 second intervals thereafter # 3) Upon trigger, attempt to load (and start) new *.torrent files found in /home/user/torrents/watch/ # 4) set a variable named 'custom1' with the value "/home/user/torrents/complete" # NOTE: if you do not want it to automatically start the torrent, change 'load.start' to 'load.normal' schedule2 = watch_directory_1,10,10,"load.start=/home/user/torrents/watch/*.torrent,d.custom1.set=/home/user/torrents/complete" # upon completion, move content to path specified above via custom1 method.insert = d.data_path, simple, "if=(d.is_multi_file), (cat,(d.directory),/), (cat,(d.directory),/,(d.name))" method.insert = d.move_to_complete, simple, "d.directory.set=$argument.1=; execute=mkdir,-p,$argument.1=; execute=mv,-u,$argument.0=,$argument.1=; d.save_full_session=" method.set_key = event.download.finished,move_complete,"d.move_to_complete=$d.data_path=,$d.custom1="
このように、ウォッチディレクトリとそれに対応する補完ディレクトリを追加することができます:
directory = /home/user/torrents/incomplete schedule2 = watch_directory_1,10,10,"load.start=/home/user/torrents/watch/*.torrent,d.custom1.set=/home/user/torrents/complete" schedule2 = watch_directory_2,10,10,"load.start=/home/user/torrents/watch/iso/*.torrent,d.custom1.set=/home/user/torrents/complete/iso" schedule2 = watch_directory_3,10,10,"load.start=/home/user/torrents/watch/music/*.torrent,d.custom1.set=/home/user/torrents/complete/music" method.insert = d.data_path, simple, "if=(d.is_multi_file), (cat,(d.directory),/), (cat,(d.directory),/,(d.name))" method.insert = d.move_to_complete, simple, "d.directory.set=$argument.1=; execute=mkdir,-p,$argument.1=; execute=mv,-u,$argument.0=,$argument.1=; d.save_full_session=" method.set_key = event.download.finished,move_complete,"d.move_to_complete=$d.data_path=,$d.custom1="
また、ウォッチディレクトリごとに不完全なディレクトリを指定することも可能です:
directory = /home/user/torrents/incomplete schedule2 = watch_directory_1,10,10,"load.start=/home/user/torrents/watch/*.torrent,d.directory.set=/home/user/torrents/incomplete,d.custom1.set=/home/user/torrents/complete" schedule2 = watch_directory_2,10,10,"load.start=/home/user/torrents/watch/iso/*.torrent,d.directory.set=/home/user/torrents/incomplete/iso,d.custom1.set=/home/user/torrents/complete/iso" schedule2 = watch_directory_3,10,10,"load.start=/home/user/torrents/watch/music/*.torrent,d.directory.set=/home/user/torrents/incomplete/music,d.custom1.set=/home/user/torrents/complete/music" method.insert = d.data_path, simple, "if=(d.is_multi_file), (cat,(d.directory),/), (cat,(d.directory),/,(d.name))" method.insert = d.move_to_complete, simple, "d.directory.set=$argument.1=; execute=mkdir,-p,$argument.1=; execute=mv,-u,$argument.0=,$argument.1=; d.save_full_session=" method.set_key = event.download.finished,move_complete,"d.move_to_complete=$d.data_path=,$d.custom1="
また、bash スクリプトによる補完移動、pyrocore の rtcontrol (AUR パッケージがあります) も参照してください。
ウォッチフォルダ無し
rtorrent が完成したフォルダーの場所をラベルごとに自動的に管理することを希望する場合は、以下を rtorrent.rc 構成に追加し、環境に合わせてパスを修正します:
# Check if destination dir is not Null method.set_key = event.download.inserted_new,check_dest_dir, \ "branch=d.custom=storagedir,,\ \"d.custom.set=storagedir,/path/to/download/directory\"" # Modify destination dir according to tv label method.set_key = event.download.inserted_new,update_dest_dir_tv, \ "branch=\"equal={d.custom1=, cat=TV}\",\ \"d.custom.set=storagedir,/path/to/tv/dir\"" # Modify destination dir according to movies label method.set_key = event.download.inserted_new,update_dest_dir_movies, \ "branch=\"equal={d.custom1=, cat=Movies}\",\ \"d.custom.set=storagedir,/path/to/movie/dir\"" # Move files of completed torrents method.set_key = event.download.finished,move_completed, \ "d.directory.set=$d.custom=storagedir; \ execute2={mv,-u,$d.base_path=,$d.custom=storagedir}"
このユースケースの例は、ZFS を使用していて、ソース素材を同じファイルシステム上に置く必要がある場合です。rTorrent は一時的な NVMe/SSD にダウンロードし、コンテンツを ZFS ファイルシステムに移動します。そこで *arrs がメディアを処理し、メディアサーバーがスクレイピングする別のフォルダーにハードリンクします。
Google メールでの通知
携帯電話に メール を送ることもできます。
Verizon: 10digitphonenumber@vtext.com AT&T: 10digitphonenumber@txt.att.net Former AT&T customers: 10digitphonenumber@mmode.com Sprint: 10digitphonenumber@messaging.sprintpcs.com T-Mobile: 10digitphonenumber@tmomail.net Nextel: 10digitphonenumber@messaging.nextel.com Cingular: 10digitphonenumber@cingularme.com Virgin Mobile: 10digitphonenumber@vmobl.com Alltel: 10digitphonenumber@alltelmessage.com OR 10digitphonenumber@message.alltel.com CellularOne: 10digitphonenumber@mobile.celloneusa.com Omnipoint: 10digitphonenumber@omnipointpcs.com Qwest: 10digitphonenumber@qwestmp.com Telus: 10digitphonenumber@msg.telus.com Rogers Wireless: 10digitphonenumber@pcs.rogers.com Fido: 10digitphonenumber@fido.ca Bell Mobility: 10digitphonenumber@txt.bell.ca Koodo Mobile: 10digitphonenumber@msg.koodomobile.com MTS: 10digitphonenumber@text.mtsmobility.com President's Choice: 10digitphonenumber@txt.bell.ca Sasktel: 10digitphonenumber@sms.sasktel.com Solo: 10digitphonenumber@txt.bell.ca
/etc/mail.rc
ファイルをクリアして、入力します。
set sendmail="/usr/bin/mailx" set smtp=smtp.gmail.com:587 set smtp-use-starttls set ssl-verify=ignore set ssl-auth=login set smtp-auth-user=USERNAME@gmail.com set smtp-auth-password=PASSWORD
本文を送信するには、mailx プログラムにメッセージをパイプで送る必要があります。
- Bash スクリプトを作成します。
/path/to/mail.sh
echo "$@: Done" | mailx 5551234567@vtext.com
ここで、$@ はスクリプトに渡されるすべての引数を保持する変数です。
最後に、重要な ~/.rtorrent.rc 行を追加します。
以下分解です:
notify_me
はコマンドIDで、他のコマンドで使用される可能性があり、ユニークであれば何でもかまいません。
execute=
は、rtorrent コマンドで、この場合はシェル コマンドを実行します。
/path/to/mail.sh
は、スクリプトの名前 (または実行するコマンド) と、渡されるすべてのスイッチ/引数をカンマで区切ったリストです。
$d.get_name=
d はコマンドのトリガーとなるダウンロードのエイリアス、get_name はダウンロードの名前を返す関数、$ は実行を呼び出す前にコマンドをその出力に置き換えるよう rTorrent に指示します。
最終結果は? 出勤前に開始したトレント、All Live Nudibranches が終了すると、テキストが送信されます。
All Live Nudibranches: Done
UI トリック
rTorrent はデフォルトでアクティブなタブを正しく表示しません。アクティブなトレントのみを表示するには、次の行を .rtorrent.rc
に追加してください。
schedule2 = filter_active,30,30,"view.filter = active,\"or={d.up.rate=,d.down.rate=}\""
次に、rTorrent クライアントで 9
を押して、変更点を確認します。
シードビューをアップロード率でソートし、ピアのいるトレントのみを表示するには。
# Sort the seeding view by the upload rate and only show torrents with peers view.sort_current = seeding,greater=d.up.rate= view.filter = seeding,"and=d.complete=,d.peers_connected=" view.sort_new = seeding,less=d.up.rate= view.sort = seeding
完全なビューをアップロード率でソートする場合。
# Sort the complete view by the upload rate view.sort_current = complete,greater=d.up.rate= view.filter = seeding,"and=d.complete=" view.sort_new = seeding,less=d.up.rate= view.sort = seeding
手動でトラッカーを torrent に追加
- rTorrent のコンソールビューから編集する torrent を選択。
Ctrl+x
を押す。- もし4つのトラッカーがあったら、次の行を1つずつ入力してください (常に最初に
Ctrl+x
を押してください) 例えば4つ追加することができます。
d.tracker.insert="5","udp://tracker.publicbt.com:80" d.tracker.insert="6","udp://tracker.openbittorrent.com:80" d.tracker.insert="7","udp://tracker.istole.it:80" d.tracker.insert="8","udp://tracker.ccc.de:80"
torrent を特定の時刻に開始するように設定する
トレントをすぐにダウンロードせず、後で開始したい場合 (たとえば、データ プランに合わせるため)、トレントを特定のディレクトリに追加し、rtorrent にそのディレクトリを定期的にチェックするよう指示し、トレント ファイルが存在すれば、rtorrent は指定時刻にダウンロードを開始するようにすることができます。
# Start torrents at 1am in this directory schedule2 = watch_start,01:00:00,24:00:00, "load.start=/home/user/torrents/offpeak/*.torrent"
rtorrent は 24 時間ごとに torrents/offpeak/
ディレクトリをチェックし、トレント ファイルが存在する場合は午前 01:00 にそれを開始します。
トラブルシューティング
CA 証明書
rTorrent で HTTPS を使用するトラッカーを使う場合、root で以下を実行してください:
# cd /etc/ssl/certs # wget --no-check-certificate https://www.geotrust.com/resources/root_certificates/certificates/Equifax_Secure_Global_eBusiness_CA-1.cer # mv Equifax_Secure_Global_eBusiness_CA-1.cer Equifax_Secure_Global_eBusiness_CA-1.pem # c_rehash
そして rTorrent を次のコマンドで実行してください:
$ rtorrent -o http_capath=/etc/ssl/certs
GNU Screen を使っている場合、変更が適用されるように .screenrc
設定ファイルを更新:
$ screen -t rtorrent rtorrent -o http_capath=/etc/ssl/certs
rTorrent 0.8.9 では network.http.ssl_verify_peer.set=0
を設定することで 問題が修正 されます。
詳細は次を参照: rTorrent Error & CA Certificate と rTorrent Certificates Problem
ディレクトリのロック
クラッシュや不正のシャットダウンの後、ときどき rTorrent が動かなくなって、ロックファイルについてエラーを表示することがあります。
エラーメッセージによると、ダウンロード ディレクトリの隠しフォルダ .rtorrentsession
内に rtorrent.lock というファイルが見つかった場合、手動で削除することができます。
Event failed: bad return code
これは、system.method.* の行にスペースがある場合や、単にインストールされていない外部スクリプトを呼び出すイベントハンドラ、または0以外の終了コードを返す場合によく起こります。
前者については、偽のスペースを削除するか、意図的にパスなどを引用することで、動作するようになります。
ウェブインターフェイス
rTorrent には様々なウェブインターフェイスやフロントエンドが存在しています:
- rutorrent と Forum - uTorrent とよく似たインターフェイスを持つウェブベースのフロントエンドです。多数のプラグインと高度な機能をサポートしています (参照:ruTorrent と Guide on forum)
- Flood - XMLRPC を使用して Node.js で書かれたモダンなインターフェイスです。
XMLRPC インターフェイス
Unix ソケット
rTorrent を Web インターフェイスで使用する場合、次の行を設定ファイルに追加し、'user を rTorrent を実行するユーザーに置き換えてを実行する必要があります。
network.scgi.open_local = /home/user/rpc.socket execute.nothrow = chmod,770,/home/user/rpc.socket
詳しくはこちらをご覧ください。Using XMLRPC with rtorrent を参照してください。
SCGI Port
network.scgi.open_port = localhost:5000
magnet リンクを watch フォルダに torrent ファイルとして保存
magnet リンクを watch フォルダに自動的に追加したい場合、以下のスクリプトで行うことができます:
#!/bin/bash watch_folder=~/.rtorrent/watch cd $watch_folder [[ "$1" =~ xt=urn:btih:([^&/]+) ]] || exit; echo "d10:magnet-uri${#1}:${1}e" > "meta-${BASH_REMATCH[1]}.torrent"
(ソース: http://blog.gonzih.org/blog/2012/02/17/how-to-use-magnet-links-with-rtorrent/)
例えば、rtorrent-magnet という名前で保存し、実行権限を与え、$PATH の下のどこかに配置します。次に、Firefox で
- ロケーション バー (アドレス バー) に
about:config
と入力し、Enter
キーを押します。 - 右クリックする。新規 > Boolean > Name: network.protocol-handler.expose.magnet と入力します。> 値> false です。
- 次回 magnet リンクをクリックすると、どのアプリケーションでそれを開くか尋ねられます。先ほど作成したスクリプトを選択すれば完了です。
xdg-open で処理したい場合、Firefox の代わりに chrome を使用している場合は必要ですが、(gnome やその他の DE では xdg-open を上書きする独自のプログラムがあるかもしれません)rtorrent-magnet スクリプト用のデスクトップ エントリを ~/.local/share/applications/rtorrent-magnet.desktop
に次の内容で作成する必要があります。
[Desktop Entry] Type=Application Name=rtorrent-magnet Exec=rtorrent-magnet %U MimeType=x-scheme-handler/magnet; NoDisplay=true
以下でmimetypeを登録するだけです。
$ xdg-mime default rtorrent-magnet.desktop x-scheme-handler/magnet
magnet を Torrent に変換
magnet2torrent-gitAUR パッケージを使うことでメタデータをダウンロードして torrent ファイルを作成することができます。
使用方法:
$ magnet2torrent <magnet link> [torrent file]
rtorrent-ps
rTorrent-PS は、UI の強化、カラー化、およびいくつかの機能追加を行ったパッチセット形式の rTorrent ディストリビューションです。
インストール方法
AUR から入手できる様々なパッケージを使うか、GitHub リポジトリにあるビルドスクリプトを使ってパッケージを作成してください。詳しくは the docs を見て下さい。
設定
rTorrent 設定ファイルで pyro.extended を 1 に設定し、rTorrent-PS 機能を有効にします。
method.insert = pyro.extended, value|const, 1
その他の設定例については、pimp-my-box リポジトリの rtorrent-ps テンプレートを参照してください。動作させるには PyroScope のコマンドライン ユーティリティが必要な場合があることに注意してください。
PyroScope コマンドラインユーティリティ
PyroScope コマンドラインユーティリティ は、rTorrent クライアント用のツールのコレクションで、#rtorrent-psパッチセットと一緒に使用すると便利です。 特に、一般的なタスクの自動化や、rTorrent のキュー マネージャを提供します。
インストールと設定については、公式ドキュメント に従ってください。その他の設定例については、pimp-my-box リポジトリの rtorrent-ps テンプレートを参照してください。
参照
- Manpage for rtorrent
- Comparison of BitTorrent clients Wikipedia
- rTorrent Community Wiki - セットアップ、構成、運用、および開発に関するrTorrentおよびrTorrentに関連するプロジェクトに関する情報の公開場所。
- PyroScope - rTorrent 用のコマンドラインツールのコレクション。トレント ファイルの作成と変更、複数のウォッチ フォルダーを使用しない完了時のデータの移動、rTorrent の XML-RPC インターフェイスを介したダウンロード アイテムの一括制御 (検索、開始/停止、データ付き/データなしのアイテムの削除など) のためのコマンドを提供します。また、文書化された Python も提供されています。APIを提供します。
- ruTorrent と Lighttpd
- How-to install rTorrent and Hellanzb on CentOS 5 64-bit VPS
- Installation guide for rTorrent and Pryoscope on Debian - BitTorrent プロトコル、特に rTorrent クライアントのためのツール集
- mktorrent - torrent ファイルを作成するためのコマンドラインアプリケーション、公式リポジトリの mktorrent でインストールできます。
- docktorrent - Docker, rTorrent, ruTorrent を使用してフル機能の BitTorrent マシンを実行。
- reptyr - (標準リポジトリにあります) プロセスはターミナルや tmux、screen、dtach のソケットにアタッチされるようになったかもしれません。プログラムの TTY を引き継ぐための別のツールです
- neercs - reptyr よりも screen/tmux に似たツールですが、reptyr と同様に、neercs は、端末または tmux、screen、または dtach のソケットにスレーブとして開始された可能性のあるプロセスを "steal" することもできます。
フォーラムスレッド
- 2009-03-11 - Arch Linux - HOWTO: rTorrent stats in Conky