「Transmission」の版間の差分
(→参照: 同期) |
(→CLI サンプル: 情報を更新) |
||
| 157行目: | 157行目: | ||
ダウンロード完了した torrent を全て削除したい場合、ユーザー名とパスワードを指定して以下のコマンドを実行します: |
ダウンロード完了した torrent を全て削除したい場合、ユーザー名とパスワードを指定して以下のコマンドを実行します: |
||
| + | |||
# transmission-remote -n 'username:password' -l | grep 100% | awk '{print $1}'| paste -d, -s | xargs -i transmission-remote -t {} -r |
# transmission-remote -n 'username:password' -l | grep 100% | awk '{print $1}'| paste -d, -s | xargs -i transmission-remote -t {} -r |
||
| + | |||
| + | すでにダウンロードされている torrent をシードします: |
||
| + | |||
| + | # transmission-remote [HOST] --torrent=example.torrent -a example.torrent --verify --download-dir=/dir/to/folder --start |
||
==== IPv6 を有効にする ==== |
==== IPv6 を有効にする ==== |
||
2023年12月7日 (木) 07:26時点における版
Transmission は軽量でクロスプラットフォームの BitTorrent クライアントです。
目次
インストール
Transmission を インストール するために、いくつかのパッケージが用意されています。
- transmission-cli - デーモン、CLI、および Web インターフェイス 付き。
- transmission-gtk - GTK 3 パッケージ。
- transmission-qt - Qt 5 パッケージ。
- tremcAUR or tremc-gitAUR – デーモン用の curses インターフェース。
- stigAUR / stig-gitAUR デーモン用の curses インターフェース。
- transmission-remote-gtk デーモン用の GTK 3 グラフィカルインターフェイス。
GUI バージョンの設定
GUI の transmission-gtk と transmission-qt はどちらもバックエンドデーモンを必要としません。
GUI バージョンは特に何も設定しなくても動作するようになっていますが、設定を変えたい場合、GUI の設定ファイルのデフォルトパスは ~/.config/transmission です。
設定オプションのガイドが Transmission の Github に記載されています。
GTK+ の一時的な見た目の修正
GTK+ 3.18 では、transmission-gtk で黒い縁がランダムで表示されることがあります。gtk.css を以下のように編集することで表示しないようにすることが可能です:
~/.config/gtk-3.0/gtk.css
.tr-workarea .overshoot,
.tr-workarea .undershoot { border: none; }
Transmission-daemon と CLI
transmission-cli のコマンド:
- transmission-daemon: デーモンを起動。
- transmission-remote: デーモンの CLI を起動。デーモンで実行したいコマンドを後に付けます。
- transmission-cli: (transmission-remote のため非推奨) torrent を手動でダウンロードするための transmission のローカルインスタンスを起動。
- transmission-show: 指定した torrent ファイルの情報を返します。
- transmission-create: 新しい torrent を作成。
- transmission-edit: トラッカーのアナウンス URL を追加・削除・置換。
- tremc: (tremc-gitAUR が必要) ローカルかリモートかにかかわらず、デーモンの curses (プログラミングライブラリ) インタフェースを起動します。
デーモンの起動と停止
#ユーザーの選択 で説明されているように、transmission デーモンは以下の方法で実行できます:
- 通常のユーザーで以下のコマンドを実行:
$ transmission-daemon
デーモンは以下のコマンドで停止できます:$ killall transmission-daemon
デーモンを起動すると transmission の設定ファイルが自動的に作成されます。#デーモンの設定を参照してください。
transmission は transmission-remote コマンドを使って停止することもできます:
$ transmission-remote --exit
ジャーナルのログ出力を減らす
transmission-daemon を起動すると大量のジャーナルのエントリが生成されます。以下のようなラッパースクリプトを使って起動することで出力を減らすことが可能です:
transwrap.sh
#!/bin/zsh
killall transmission-daemon 2> /dev/null
transmission-daemon --foreground --log-info 2>&1 | while read line; do
echo $line |
grep -v "announcer.c:\|platform.c:\|announce done (tr-dht.c:" |
grep -v "Saved.*variant.c:" |
while read line; do
echo $line | grep -q "Queued for verification (verify.c:" &&
notify-send --app-name="Transmission Started" "${line#* * }"
echo $line | grep -q "changed from .Incomplete. to .Complete." &&
notify-send --app-name="Transmission Complete" "${line#* * }"
echo $line | systemd-cat --identifier="TransWrap" --priority=5
done 2>&1 > /dev/null
done&disown
ネットワークに接続された時に起動
Netctl
場合によっては特定のネットワークだけで transmission を実行したいということがあります。以下のスクリプトは接続を確認してから transmission-daemon の起動に進みます:
/etc/netctl/hooks/90-transmission.sh
#!/bin/bash
# The SSIDs for which we enable this.
declare -A ssids=(
["network_1"]=y
["network_2"]=y
)
if [[ ${ssids[$SSID]} ]]; then
case $ACTION in
CONNECT|REESTABLISHED)
# Need to wait, otherwise doesn't seem to bind to 9091.
sleep 30
systemctl start transmission
;;
*)
systemctl stop transmission
;;
esac
fi
ユーザーの選択
transmission を動かす方法を選択してください:
- 別のユーザーで動かす、デフォルトは
transmission(セキュリティが良くなるので推奨)。
デフォルトでは transmission は transmission ユーザーとグループを作成してホームファイルを /var/lib/transmission/ に設定して transmission ユーザーで動作します。これによってセキュリティが守られ、transmission やダウンロードしたファイルは /var/lib/transmission/ の外側のファイルにアクセスできなくなります。transmission を設定・操作したりダウンロードファイルにアクセスするには (sudo を使用するなどして) "root" 権限が必要になります。
- ユーザーの下で動かす
セットアップするには、サービスファイルを上書きしてユーザー名を指定してください:
/etc/systemd/system/transmission.service.d/username.conf
[Service] User=your_username
デーモンの設定
デーモンを起動して設定ファイルを作成してください。
transmissionユーザーで Transmission を起動した場合、設定ファイルは/var/lib/transmission/.config/transmission-daemon/settings.jsonに作られます。
- 通常ユーザーで Transmission を起動した場合、設定ファイルは
~/.config/transmission-daemon/settings.jsonに作られます。
デーモンは Transmission クライアントを使用するか、デーモンに含まれているウェブインターフェイスに http://localhost:9091 からブラウザでアクセスすることで設定できます。
設定オプションのガイドが Transmission のウェブサイトに存在します: https://github.com/transmission/transmission/wiki/Editing-Configuration-Files 。
transmission ユーザーで動作させる場合、適切なパーミッションで共有のダウンロードディレクトリを作成して transmission ユーザーとシステムユーザーの両方がアクセスできるように設定して、設定ファイルもそれにあわせて修正することを推奨します。例:
# mkdir /mnt/data/torrents # chown -R facade:transmission /mnt/data/torrents # chmod -R 775 /mnt/data/torrents
上記のコマンドを実行すると /mnt/data/torrents にシステムユーザーの facade と transmission ユーザーの属している transmission グループからアクセスできるようになります。どこからも読み書きできるように権限を設定することは極力控えてください (ディレクトリを 777 に chmod しないでください)。かわりに、適切なディレクトリに積雪なユーザー・グループのパーミッションを付与してください。
逆に、ユーザーを transmission グループに追加 (#usermod -a -G transmission yourusername) して、transmission グループのメンバーが読み書きできるように /var/lib/transmission と /var/lib/transmission/Downloads ディレクトリのパーミッションを設定するという方法もあります。
ホストのホワイトリスト
サーバーのホスト名を使用してネットワーク経由で Transmission デーモンにアクセスする場合は、このホスト名を settings.json の rpc-host-whitelist に追加する必要があります。そうしないとサーバーにアクセスするときに "421 Misdirected Request" エラーが発生します。 サーバーの IP アドレスを使用してデーモンに接続する場合これは必要ありません。
監視ディレクトリ
フォルダから .torrent ファイルを自動的に追加したいのに、設定ファイルの watch-dir と watch-dir-enabled オプションが機能しない場合、-c /path/to/watch/dir フラグを付けて transmission デーモンを起動してみてください。
systemd を使用している場合、systemd#ユニットファイルの編集に記述されているようにして transmission.service ユニットを編集してください。
CLI サンプル
ダウンロード完了した torrent を全て削除したい場合、ユーザー名とパスワードを指定して以下のコマンドを実行します:
# transmission-remote -n 'username:password' -l | grep 100% | awk '{print $1}'| paste -d, -s | xargs -i transmission-remote -t {} -r
すでにダウンロードされている torrent をシードします:
# transmission-remote [HOST] --torrent=example.torrent -a example.torrent --verify --download-dir=/dir/to/folder --start
IPv6 を有効にする
デフォルトでは、デーモンは IPv4 接続のみを待機します。 IPv6 接続もリッスンするには、settings.json で rpc-bind-address オプションを "::" に変更します。
通知
transmission-daemon を停止し、これらを .config/transmission-daemon/settings.json に追加します:
"script-torrent-added-enabled": true, "script-torrent-added-filename": "path/to/transmission-handler.sh", "script-torrent-done-enabled": true, "script-torrent-done-filename": "path/to/transmission-handler.sh",
transmission-handler.sh
#!/bin/bash
percentage=$(transmission-remote -t $TR_TORRENT_ID -l | awk -v ID="$TR_TORRENT_ID" '$0 ~ ID{print $2}')
if [ $percentage != "100%" ]
then
notify-send --app-name="Transmission Started" "Transmission: started $TR_TORRENT_NAME"
else
notify-send --app-name="Transmission Complete" "Transmission: downloaded $TR_TORRENT_NAME"
fi
Web インターフェイス
GUI 方式
Transmission をインストールすると、 Web インターフェイスを簡単に設定できます。必要なのは、編集 メニューをクリックして、設定 を選択することだけです。 リモート タブをクリックし、 リモート接続を許可 を有効にします。
ここで、デフォルトのリスニング・ポートを9091から変更できます。
認証を利用 を確認し、認証を使用できるようにユーザー名とパスワードを入力します。
セキュリティを強化するには、 以下のIPアドレスのみを許可 を有効にして、任意の IP アドレスからのアクセスを制限します。
これで、デフォルトの Web ブラウザを開く をクリックするか、サポートされている Web ブラウザで手動で http://TARGET_IP_ADDRESS:PORT にアクセスして、 Web インターフェイスを起動する準備ができます。
リスニング・ポートを変更していない場合、デフォルトは9091です。この場合、リンクは http://localhost:9091 になります。
CLI 方式
Web インタフェースを設定するのにグラフィカルインタフェースは必要ありませんが、デーモンはまったく同じオプションを提供します。フラグを指定しなくても、 Web インターフェイスにアクセスできます。#デーモンの設定 を参照してください。
ただし、前のセクションで説明した内容はすべて指定できます。
$transmission-daemon--auth-username arch--password linux--port 9091--allowed "127.0.0.1"
これは、
$ transmission-daemon -t -u arch -v linux -p 9091 -a "127.0.0.1"
と同じです。
オプションの Web UI テーマ
ウェブアプリのデフォルトのユーザーインターフェースが気に入らない場合、このシンプルな CSS テーマを使ってみてください。
https://git.eigenlab.org/sbiego/transmission-web-soft-theme
また、デフォルトの UI と共存できる完全な置き換え機能もあります。
https://github.com/ronggang/transmission-web-control
makepkg DLAGENT としての使用法
Transmission は transmission-dlagentAUR ダウンロードエージェントを使えば makepkg のマグネットダウンロードエージェントとして使うことができます。
Magnet URIs はプレフィックスを magnet:? から magnet:// に変更する必要があります。
トラブルシューティング
ネットワーク経由でデーモンにアクセスできない
デーモンは network.service が初期化された後に起動します。しかしながら、(dhcpcd@enp1s0.service などのようにデバイスを指定せずに) dhcpcd サービスを有効にしている場合、Transmission の方が早く起動してネットワークインターフェイスが使えないという状況になることがあります。その場合、ウェブインターフェイスにアクセスできなくなります。解決するにはユニットの 設定ファイル に Requires 行を追加してください:
/etc/systemd/system/transmission.service.d/fixdep.conf
[Unit] Requires=network.target
Web インターフェースにアクセスできない
404: Not Found Couldn't find Transmission's web interface files! Users: to tell Transmission where to look, set the TRANSMISSION_WEB_HOME environment variable to the folder where the web interface's index.html is located. Package Builders: to set a custom default at compile time, #define PACKAGE_DATA_DIR in libtransmission/platform.c or tweak tr_getClutchDir () by hand.
グラフィカルインターフェイスを使用している場合でも、Web インターフェイスが機能するためには、transmission-cli をインストールする必要があります。
送受信バッファの設定に失敗しました
送信時に、起動時に次のいずれかのメッセージがジャーナルに表示される場合があります:
UDP Failed to set receive buffer: requested 4194304, got 425984 UDP Failed to set send buffer: requested 1048576, got 425984
これらは、 sysctl で net.core.rmem_max=4194304 および net.core.wmem_max=1048576 を設定することで修正できます。
transmission-remote が頻繁にタイムアウトになるか、Web インターフェイスが応答しなくなる
Transmission はディスク IO を非同期的に処理しないため、大量の書き込みを行うと応答しなくなります。[1] を参照してください。転送のダウンロードディレクトリを、HDD の代わりに SSD など、より高速なストレージに置くことを検討してください。
transmission-gtk でトレイアイコンがありません
GTK 4 バージョンのトレイアイコンは 今のところ機能していません GTK 3 バージョン transmission-gtk3AUR を使用するオプションがあります。
401: Unauthorized
Web インターフェースのユーザー名とパスワードを設定した後に transmission-remote を使用すると、次のエラーが表示される場合があります。
< h1>401: Unauthorized\Unauthorized User
これは、ユーザー名とパスワードが設定されているために発生します。この後、transmission-remote からのコマンドは全て認証される必要があります。こちらを参照してください: transmission-remote コマンドが Unauthorized user でエラーになる