FreeNAS 上的传输在完成时不调用脚本
Transmission on FreeNAS does not call script on completion
我已经尝试得到这个 运行ning 一个多星期了,但一直不知所措。我正在尝试使用 settings.json 配置在完成时调用脚本,如下所示:
"script-torrent-done-enabled": true,
"script-torrent-done-filename": "/posttorrent.sh",
我的脚本在jail的根目录下,属于传输。我还检查了文件的权限(755)并且有 运行 chmod +x /posttorrent.sh.
我什至将文件简化为只输出到日志文件,如下所示:
#!/bin/bash
echo "$TR_TORRENT_NAME is completed" >> /posttorrent.log
然而,到目前为止,无论我下载什么文件,我在任何地方都没有 posttorrent.log 文件。我不确定我是否在正确的轨道上,因为传输设置为日志级别 3,但我什至没有在 /var/log/debug.log 中看到对脚本的调用。我确信我遗漏了一些简单的东西,因为其他人已经能够让这个工作正常进行,我现在只是没有选择,因为我想我已经阅读 and/or 尝试了我能找到的与这个问题相关的一切。谢谢!
该脚本依赖于 /bin/bash
存在于监狱中。
您可以更改脚本以使用 /bin/sh
,更改 /bin/bash
/usr/bin/env bash
或 link /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
用户没有 permission 创建
根目录下的日志文件。适当地允许创建
日志文件将目标目录更改为
transmission
用户有 permission 可以写入。例如
/var/db/transmission/posttorrent.log
,如果使用 FreeNAS 插件。
可以使用 transmission
用户创建一个目录
install utility:
install -d -o transmission -g transmission /home/transmission
或者,可以使用
install utility,或者可以用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 网站上编辑插件的设置 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";
我已经尝试得到这个 运行ning 一个多星期了,但一直不知所措。我正在尝试使用 settings.json 配置在完成时调用脚本,如下所示:
"script-torrent-done-enabled": true,
"script-torrent-done-filename": "/posttorrent.sh",
我的脚本在jail的根目录下,属于传输。我还检查了文件的权限(755)并且有 运行 chmod +x /posttorrent.sh.
我什至将文件简化为只输出到日志文件,如下所示:
#!/bin/bash
echo "$TR_TORRENT_NAME is completed" >> /posttorrent.log
然而,到目前为止,无论我下载什么文件,我在任何地方都没有 posttorrent.log 文件。我不确定我是否在正确的轨道上,因为传输设置为日志级别 3,但我什至没有在 /var/log/debug.log 中看到对脚本的调用。我确信我遗漏了一些简单的东西,因为其他人已经能够让这个工作正常进行,我现在只是没有选择,因为我想我已经阅读 and/or 尝试了我能找到的与这个问题相关的一切。谢谢!
该脚本依赖于 /bin/bash
存在于监狱中。
您可以更改脚本以使用 /bin/sh
,更改 /bin/bash
/usr/bin/env bash
或 link /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
用户没有 permission 创建
根目录下的日志文件。适当地允许创建
日志文件将目标目录更改为
transmission
用户有 permission 可以写入。例如
/var/db/transmission/posttorrent.log
,如果使用 FreeNAS 插件。
可以使用 transmission
用户创建一个目录
install utility:
install -d -o transmission -g transmission /home/transmission
或者,可以使用 install utility,或者可以用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 网站上编辑插件的设置 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";