![新しいレシピ](https://rvso.com/image/1114972/%E6%96%B0%E3%81%97%E3%81%84%E3%83%AC%E3%82%B7%E3%83%94.png)
transmission-gtk にはスクリプトを実行できるオプションがあります:編集 > 設定 > ダウンロード > トレントが完了したらスクリプトを呼び出す。
最近、私はこのスクリプト送信中に動作させる方法がわかりません。プログラムの説明によると、スクリプトはシステムをオフにしませんが、すべてのトレントが終了した後に送信を停止できます。チェーンできるので、私にとっては十分です。オフにする" に "トランスミッション終了" による&&
。
さて、皆さん、この PHP スクリプトを送信中に実行するのを手伝ってくれませんか?
これはスクリプト作成者が言及した例です:
php.exe Transmission_Quit.php --port=9999 --hostname=192.168.0.1
; これはどういう意味ですか?! どのように使用すればよいですか? " を指す必要がありますか?トレントが完了したらスクリプトを呼び出す「」オプションを直接使用しますか?
答え1
特定の PHP スクリプトを実行するように求めている元の質問に対応するために、これを残しています。ただし、主な問題を解決するための回避策が「新しいレシピ」セクションに提供されています。
これを試して結果をお知らせください。その後、この回答は変更または削除される可能性があります。
ある時点でパスワードを要求される場合があります。
- まず、ターミナルにドロップして script.php というファイルを作成しましょう
sudo gedit script.php
(このファイルは任意のフォルダーにドロップできますが、テスト目的の場合はホーム フォルダーが適しています)。 - ファイルに、あなたが言及したスクリプトの内容をコピー/貼り付けします。ファイルを保存して閉じます。
次に、次の 2 行をターミナルに 1 行ずつ入力して、ファイルに適切なファイル権限と実行権限も付与します。
sudo chmod 755 スクリプト.php
sudo chmod a+x スクリプト.php
次に、ターミナルにドロップして php5-cli をインストールし
sudo apt-get install php5-cli
、ターミナルがインストール プロセスを完了するまで待ちます。
インストールしたら、ターミナルでphp5-cli
呼び出してスクリプトをテストできますphp script.php --port=9999 --hostname=192.168.0.1;
が、Transmission 内から実行する方がよいでしょう。
php5-cliは、PHP5 スクリプト言語のコマンド ライン インタープリタであり、このような PHP スクリプトを実行するのに便利です。これは、元の質問で参照した Windows の php.exe ファイルに似ています。
成功することを祈っていますが、適切なサポートを提供するために結果をお知らせください。役に立たない場合はこの回答を削除してください。
補遺
皆さんのコメントを読んだ後、PHP スクリプト用のこのファーストフードのレシピを紹介します。
まず最初に、スクリプトの作成者が示した例のいくつかについて、次のように説明する必要があります。
script.php --port=9999 --hostname=192.168.0.1;
--port=9999
= 9999 はポートの例ですが、このフィールドには、Web クライアント タブで定義したのと同じポート番号を入力する必要があります。--hostname=192.168.0.1
= 送信のプロセスを強制終了するためにスクリプトを実行する機器の IP である必要があります。
これを見ると、プロセスはリモートで呼び出すことができるように思えますが、今回のケースではデフォルト値を使用するので、ポートもホスト名も含める必要はありません。script.php
ターミナルでファイルを実行するか、送信によって呼び出すだけで、コンピューターに適用されるデフォルト値が使用されます ( localhost
)。
それでは、ファーストフードを作ってみましょう。
- ファイルが必要です。bye.sh という名前を付けて、どこかに配置します。テストにはホーム フォルダーが適しています。
- 次のものをファイル内に挿入します(ファーストフードのスクリプトはこちら)、保存して閉じ、実行権限を付与します。(参考までに、この回答を下にスクロールして方法を確認してください)。
- 次に、Transmission の「ダウンロード」タブ内でそれを提供しますが、ダウンロードが完了したときに呼び出される適切な bye.sh ファイルを必ず含めてください。
それでおしまい。どういうわけか、php スクリプトは成功していますが、ダウンロードの完了後に少し遅延が発生し、2 つの小さな torrent ファイルでテストしたところです。リストが長くなった場合やダウンロード サイズが大きくなると遅延が長くなるかどうかはわかりませんが、これは New Recipe の式では確認されない動作です。ただし、PHP ファイルは、PHP が可能な OS であれば実行できることが保証されています。また、私の New Recipe は主に Linux ベースのシステムを対象としており、Ubuntu で動作し、Debian または Ubuntu ベースの他のディストリビューションでも成功する可能性があり、特定の変更を加えると、Debian/Ubuntu ベース以外の他のディストリビューションでも成功します。
幸運を!
新しいレシピ
OK、このケースには新しいレシピがあります。Transmission をそれほど頻繁に使用しないときでも、それが私の注目を集めたことを認めます。
レシピ
材料
- transmission-gtk (ソフトウェアバッグ、ターミナルなどから何らかの方法でインストール)
- transmission-cli (sudo apt-get install transmission-cli、パスワードを入力し、インストールが完了するまで待ちます。)
- スクリプト. (別々に調理)
準備
- 外部からの Web クライアント要求を受信できるようにトランスミッションを準備しましょう。こうすることで、プログラム内で何が起こっているかを監視できます。次のスクリーンショットに示すように、トランスミッションを開いて「Web」タブに移動し、「Web クライアントを有効にする」チェックボックスを有効にします。
(デフォルト値で十分です)
- お気に入りのテキストエディタを開いて、という名前のファイルを作成し
byebye.sh
、次の内容をその中に配置しましょう。(スクリプトを参照してください。ここ)
次に、bybye.sh ファイルを見つけて、ターミナルにドロップするsudo chmod a+x bybye.sh
か、Nautilus でファイルのプロパティを入力し、次のスクリーンショットに示すように、「権限」の「プログラムとしてファイルの実行を許可する」チェックボックスをオンにして、適切な実行権限を付与します。
- スクリプトを作成したので、
transmission-cli
ターミナルに をドロップして をインストールしsudo apt-get install transmission-cli
、Enter キーを押してパスワードを入力すると、ソフトウェアがインストールされます。
試食の時間
ターミナルでドロップするtransmission-remote --list | sed '1d;$d' | grep -v Done | wc -l
と、保留中または現在転送中にダウンロード中のトレントの量に応じて、ケースごとに結果が異なる場合があります。結果が異なる場合は、0
処理中です。受信時に0
ダウンロード中またはキューにあるものがある場合は、レシピを最初から確認する必要があります。エラーが発生した場合は、サポートを提供するためにコメントにドロップしてください。
- すべてがうまくいけば、トレントが完了するたびにスクリプトを実行するように転送に指示しましょう。落ち着け!落ち着いてください... スクリプトはトレントが完全にダウンロードされるたびに実行されますが、ダウンロードの結果がゼロになったときにのみ、転送を終了するアクションがトリガーされます。この条件付きの方法により、ダウンロードごとに転送が終了しないという安心感が得られます。参考までにスクリーンショットを用意しました:
出来上がり!レシピはたっぷりの量で、ダウンロードしたすべてのファイルと一緒に提供できます。最後のダウンロードが成功した場合にのみ、転送が終了します。
いくつかの警告
Transmission に保留中のアクションが 1 つだけあり、ソフトウェアを開いた瞬間にダウンロードが終了した場合、Transmission は開くとすぐに終了します。
用語集:
killall -9 transmission
= 送信を穏やかに閉じるので、閉じるたびにエラー メッセージが表示されることはありません。 を使用するだけでは、killall transmission
送信は強制的に閉じられるため、ソフトウェアは閉じる失敗を報告します。
さて、このレシピを提供するときには、私のために素晴らしいキューバ産ラム酒が入ったグラスをテーブルに必ず入れておいてください。
幸運を!