在 transmission-gtk 中有一个选项可以运行脚本:编辑 > 偏好设置 > 下载 > 当 torrent 完成时调用脚本。
最近我发现这个脚本我不知道如何让它在 transmission 下工作。根据程序描述,该脚本不会关闭系统,但它可以在所有 torrent 完成后终止 transmission。这对我来说足够了,因为我可以链接“关闭“ 到 ”关闭传输“ 经过&&
。
现在,你们能帮我运行这个传输中的 php 脚本吗?
这是脚本作者提到的一个例子:
php.exe Transmission_Quit.php --port=9999 --hostname=192.168.0.1
;这是什么意思?!我应该如何使用它?我应该将它指向“当 torrent 完成时调用脚本“选项直接?
答案1
我留下这个是为了跟进最初的问题,即要求运行特定的 php 脚本。但新配方部分提供了一种解决方法来解决主要问题。
请尝试此操作并告知您的结果,之后此答案可能会被更改或删除:
在某个时刻,可能会要求您输入密码。
- 首先,让我们通过终端创建一个名为 script.php 的文件
sudo gedit script.php
(请记住,您可以将此文件放入您希望的任何文件夹中,但出于测试目的,您的主文件夹就可以了)。 - 在文件中,让我们复制/粘贴您提到的脚本的内容。保存文件并关闭它。
现在让我们通过在终端中一次拖放接下来的两行来赋予文件适当的文件权限和执行权限。
sudo chmod 755 脚本.php
sudo chmod a + x script.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 的操作系统中运行,而我的 New Recipe 主要用于基于 Linux 的系统,它可以在 Ubuntu 上运行,并且可能在其他发行版(Debian 或基于 Ubuntu)中成功运行,并且某些修改将允许它在其他非基于 Debian/Ubuntu 的发行版中成功运行。
祝你好运!
新配方
好的,我对这个案例有了一个新方法,我承认它引起了我全部的注意,即使我不经常使用 Transmission。
食谱
原料
- transmission-gtk(通过某种方式安装,从软件包、终端等)
- transmission-cli(sudo apt-get install transmission-cli,提供密码,等待安装完成。)
- 剧本. (分开煮)
准备
- 让我们准备传输,以便从外部接收 Web 客户端请求,这样我们就可以监视程序中发生的事情。让我们打开 Transmission 并转到“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 在每次完成一个 torrent 时运行该脚本。冷静下来!请冷静...每次下载完一个种子时,脚本都会运行,但只有当下载结果为零时,它才会触发终止传输的操作。这种条件方式让我们感到安心,传输不会在每次下载时关闭。为方便起见,提供了一张屏幕截图:
瞧!食谱可以分成大份,并与您下载的所有食物一起提供。只有在最后一次下载成功后,传输才会关闭。
一些警告
如果 Transmission 只有一个待处理操作并且下载在软件打开的那一刻就完成,则 Transmission 将在打开后立即关闭。
词汇表:
killall -9 transmission
= 将以温和的方式关闭传输,这样您就不会在每次关闭时都收到错误消息。简单地使用killall transmission
将以粗鲁的方式关闭它,因此软件将报告关闭失败。
现在,请确保在提供菜谱时在桌上为我准备一杯优质古巴朗姆酒......
祝你好运!