rTorrentとScreenの組み合わせで構築する最強のtorrentダウンロード環境

 私は1台のサーバを常時稼働させ続けているが、こうしたものはtorrentをダウンロードするのに適した一種の理想的なシステムとも言えるだろう。唯一の問題は、このサーバはいわゆるヘッドレス環境、つまりモニタとキーボードを接続しない状態で運用していることだ。そうした障害を克服するにあたって私が採用したのがrTorrentというtorrentクライアントであり、これにGNU Screenを組み合わせることで、ターミナルセッションの切断後もrTorrentにダウンロード処理を継続させるようにしたのである。

 rTorrentは、必要とされる機能をすべて備えたターミナル実行型BitTorrentクライアントの1つである。そのインタフェースはncursesベースで作られており、内部的にはlibTorrentで駆動されている。rTorrentのパッケージは、メジャーなディストリビューションにおける大部分のリポジトリに収録されているが、そうしたパッケージが用意されていないシステムの場合はソースコードのダウンロードによるインストールを行えばいい。

 rTorrentで行える設定項目は多岐にわたっているが、すべての基本設定は各自のhomeディレクトリ下にある.rtorrent.rcファイルにまとめられており、このファイルはrTorrentを起動するごとに読み込まれるようになっている。初心者ユーザの場合は同プロジェクトのWebサイトで紹介されているサンプル設定が参考になるはずだ。とりあえずはこのサンプル設定を~/.rtorrent.rcにコピー&ペーストして必要な調整を施せばいいだろう。

 多くの場合rTorrentを使用するにあたって事前の調整が必要となるのは下記の項目である。

  • directory――rTorrentのダウンロードするファイルの保存先パスの指定
  • schedule――特定イベントの発生時に行うべき処理をrTorrentに指定する項目で、この設定ファイル中では複数回指定できる。例えば下記のように指定することで、新規torrentファイルのスキャンおよび削除済みtorrentの除去が実行可能となる
      schedule = watch_directory,5,5,load_start=~/*.torrent
      schedule = untied_directory,5,5,stop_untied=
    
    1つ目の行は各自のhomeディレクトリにある.torrentファイルをスキャンさせるための指定であり、該当するものが検出された場合は、rTorrent起動時に該当するtorrentがキューに登録される。2つ目の行は、ソースファイルが削除されているtorrentのダウンロードをすべて中止させるための指定である
  • max_uploads――データの受信についてはその効率を最大限に高めたいところだが、あまりに接続数を多くしすぎるとネットワークリンクの停滞を招くかもしれない。この指定は、ダウンロードオンリーのメンバが自分にアクセスする数を制限するためのものである。私の場合、自分自身がネットワーク接続を別途使用する昼間はこの設定値を2としており、夜間は最大5に高めるようにしている
  • upload_rate――これはアップロード速度を調整するための指定で、通常は25から40程度としておけばいい
  • download_rate――ダウンロード速度についても、過度に高めすぎるとネットワークリンクの停滞を招くかもしれない。これはそうしたrTorrentのダウンロード速度を調整するための指定である。私の場合はこの項目の最大値として通常は50を指定している

 こうした設定ファイルに対する細かい調整は行いたくないというユーザの場合、実行中のrTorrentに対してこれらのパラメータを直接指定することもできるが、そうした操作の詳細についてはrTorrentのマニュアルページを参照して頂きたい。

 必要なセットアップの終了後、ターミナルを起動してrtorrentを実行すると、メイン画面が開いて現在キューに登録されているtorrentに関するサマリーが表示されるはずである。そしてこの画面には1から7のキーでアクセスできる7つのビューが設けられており、これらのビューではアクティブなtorrent群に対する名前および各種ステート(complete、incomplete、started、stoppedなど)でのフィルタリングと並べ替えを施すことができる。この画面におけるtorrentの選択は上下の矢印キーにより行え、またダウンロード処理の制御はCtrl-sで開始、Ctrl-dで停止とされている。なおCtrl-dを2度押し下げると、ダウンロードしたファイルではなくtorrentファイルの削除が行われる。

 rTorrentでは、個々のダウンロードに関する詳細な情報が表示されるようになっている。この情報を表示させるには、該当するtorrentを選択して右矢印キーを押してダウンロードビューを呼び出せばいい。このビューには、すべてのピアのリスト、ファイルの情報、トラッカのリスト、転送のリストおよび、ダウンロードしたファイルチャンクまでもが表示されるようになっている。なおメインビューへの復帰は左矢印キーで行える。

 rTorrentを停止させるには、Ctrl-qを押し下げればいい。ただしrTorrentを停止させても、その時点における各torrentのステート情報は維持され続ける。そして次にrTorrentを起動する際には、前回停止時にアクティブとされていたtorrentキューの存在が確認され、ダウンロード済みコンテンツに対するハッシュチェックを施すことで、各torrentのステートが正しく復帰されるようになっている。

 rTorrentにはその他にも多数の設定項目が用意されているが、具体的にどのような設定が行えるかはrTorrentのマニュアルページを参照して頂きたい。

rTorrentにScreenを併用した運用法

 rTorrentがその真価を発揮するのは、仮想ターミナルに接続して実質的なインタラクティブシェルとして機能するScreenとのコンビネーションで運用させた場合である。これによりユーザはターミナルセッションを切断しつつも、当該セッションにて行うすべてを自動実行できるようになるのだ。Screenの入手法については、メジャーディストリビューションであればパッケージ管理システムから取得できる可能性が高いが、用意されていない場合はソースコードからのインストールを行えばいい。

 Screenセッションの開始は、ターミナルを開いてscreenと入力することで行う。ただしScreenを起動しても、その直後に表示されるのはプロンプトが出力されただけのクリアな画面であり、起動前後の違いがあまり感じられないかもしれないが、この段階で既にrTorrentなどのプロセスおよび、各自のシステムにて使用可能なコマンドを実行可能な状態となっているのである。

 セッションをデタッチするには、Ctrl-Aに続けてCtrl-Dを押せばいい。1つ目のCtrl-Aは次のキー入力がコマンドであることをScreenに宣言するための操作であり、2つ目のCtrl-Dがデタッチ(detach)コマンドである。そしてこうしてデタッチしたセッションについては、その他の致命的な障害が発生しない限り、実行中であった処理が継続され続けるようになっているのだ。

 セッションへの接続を再開する場合は、まず-lsパラメータ(screen -ls)を用いて、現在実行中のセッションを一覧させてターゲットとするセッション名を確認する必要がある。その後は下記のように-rパラメータを用いて、該当するセッション名を指定すればいい。

screen -r 12345.pts-1.machine

 なお実行中のセッションが1つだけしかない場合、-rパラメータでのセッション名指定は省略できる。

 Screenで実行可能な操作はこの場でとても説明しきれるものではないが、詳細についてはマニュアルページを参照して頂きたい。

 こうしたrTorrentとScreenという組み合わせは、確かにそれほど人目を引くようなBitTorrentの利用法ではないかもしれないが、機能と実用性という観点においてこれに勝る選択肢はそう簡単に見つからないはずだ。

Chad Filesは、10年以上のアプリケーション構築経験を有するソフトウェア開発者兼ライターであり、現在は様々なオープンソース系プロジェクトに開発者として参加している。

Linux.com 原文