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 文件。我不完全确定我是否走在正确的轨道上,因为传输设置为日志级别 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无权在根目录中创建日志文件。要正确允许创建日志文件,请将目标目录更改为 用户有权写入的目录。例如 ,如果使用 FreeNAS 插件。可以使用安装实用程序为用户 创建一个目录:transmission/var/db/transmission/posttorrent.logtransmission

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必须在编辑设置文件之前停止。但是,如果使用传输插件,设置将存储在 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 回答