1

私はこれを1週間以上実行しようとしてきましたが、途方に暮れています。次のように settings.json 構成を使用して、完了時にスクリプトを呼び出そうとしています:

"script-torrent-done-enabled": true,
"script-torrent-done-filename": "/posttorrent.sh",

私のスクリプトは刑務所のルートにあり、トランスミッションによって所有されています。ファイルのアクセス許可 (755) も確認し、chmod +x /posttorrent.sh を実行しました。

次のようにログファイルに出力するようにファイルを単純化しました。

#!/bin/bash
echo "$TR_TORRENT_NAME is completed" >> /posttorrent.log

ただし、これまでのところ、どのファイルをダウンロードしても、posttorrent.log ファイルはどこにもありません。Transmission がログ レベル 3 に設定されているため、正しい軌道に乗っているかどうかは完全にはわかりませんが、/var/log/debug.log にスクリプトの呼び出しすら表示されません。他の人がこれを機能させることができたので、簡単なものが欠けていると確信しています。この問題に関連して見つけたすべてを読んだり試したりしたと思うので、今は選択肢がありません。ありがとう!

4

1 に答える 1

1

/bin/bashスクリプトは、刑務所内に存在することに依存しています。スクリプトを使用するよう/bin/shに変更するか、に変更/bin/bash する/usr/bin/env bashか、リンク/path/to/port/bin/bashする ことができます/usr/local/bin/bash(またはbash、jail ディレクトリからの相対的な場所はどこでも構いませんが、存在する場合は にある必要があります/usr/local/bin)。

ln -s /usr/local/bin/bash /path/to/jail/bin/bash

また、ルート ディレクトリ (デフォルト) は だけが書き込み可能rootであるため、transmissionユーザーはルート ディレクトリにログ ファイルを作成する権限を持っていません。ログ ファイルの作成を適切に許可するには、宛先ディレクトリを、 transmissionユーザーが書き込み権限を持つディレクトリに変更します。たとえば /var/db/transmission/posttorrent.log、FreeNAS プラグインを使用している場合。install ユーティリティtransmissionを使用して、ユーザー 用のディレクトリを作成できます。

install -d -o transmission -g transmission /home/transmission

または、インストール ユーティリティを使用して手動でログ ファイルを作成 するか、所有者を chown で設定することもできます。

install -o transmission -g transmission -m 644 /dev/null /posttorrent.log
# or on an existing log file
chown transmission /posttorrent.log
chgrp transmission /posttorrent.log
# normally the mode bits will already be 644
chmod 644 /posttorrent.log

送信は、終了時に構成ファイルも書き換えます。そのtransmission-daemonため、設定ファイルを編集する前に停止する必要があります。ただし、Transmission プラグインを使用する場合、設定は SQLite データベース
( /usr/pbi/transmission-amd64/transmissionUI/transmission.db) に保存され
、設定ファイルは起動時にデータベースから再作成されます。 sqlite3を使用してデータベースを手動で編集するか、プラグインの設定を FreeNAS Web UI で編集できます。

sqlite3 /usr/pbi/transmission-amd64/transmissionUI/transmission.db <<EOF
UPDATE freenas_transmission SET enable=1;
UPDATE freenas_transmission SET script_post_torrent="/posttorrent.sh";
于 2016-01-17T21:34:35.990 に答える