FreeNAS上的传输不会在完成时调用脚本

时间:2016-01-16 23:37:51

标签: bash freebsd transmission-daemon

我一直试图让这个运行超过一个星期而且不知所措。我试图通过使用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中的脚本的调用。我确信我错过了一些容易的东西,因为其他人已经能够使这个工作,我现在只是选择,因为我认为我已经阅读和/或尝试了我能找到的与此问题有关的一切。谢谢!

1 个答案:

答案 0 :(得分:1)

该脚本依赖于/bin/bash在监狱内。 您可以更改脚本以使用/bin/sh,更改/bin/bash/usr/bin/env bash,或将/path/to/port/bin/bash链接到 /usr/local/bin/bash(或bash相对于/usr/local/bin的位置 jail目录,但如果它存在,它应该在ln -s /usr/local/bin/bash /path/to/jail/bin/bash )。

root

此外,根目录(默认情况下)只能由transmission写入,因此 transmission用户无法创建permission 根目录中的日志文件。要正确地允许创建 日志文件将目标目录更改为 /var/db/transmission/posttorrent.log用户有permission要写信。例如 transmission,如果使用FreeNAS插件。 可以使用install -d -o transmission -g transmission /home/transmission 用户创建目录 install utility

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

或者,可以使用。手动创建日志文件 install utility,或者可以使用chown设置所有者:

transmission-daemon

传输也将rewrite the configuration file when it exits。所以/usr/pbi/transmission-amd64/transmissionUI/transmission.db之前必须停止 编辑设置文件。但是,如果使用Transmission插件, 设置存储在SQLite数据库中
sqlite3 /usr/pbi/transmission-amd64/transmissionUI/transmission.db <<EOF UPDATE freenas_transmission SET enable=1; UPDATE freenas_transmission SET script_post_torrent="/posttorrent.sh";
并将从数据库中重新创建设置文件 启动。 sqlite3可用于手动编辑数据库,或者可以在FreeNAS Web UI上编辑插件的设置。

zmq_msg_gets