Передача на FreeNAS не вызывает сценарий при завершении

Я пытался заставить это работать больше недели, и я в растерянности. Я пытаюсь вызвать скрипт по завершении, используя конфигурацию 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, независимо от того, какой файл я загружаю. Я не совсем уверен, нахожусь ли я на правильном пути, поскольку Transmission настроен на уровень логирования 3, и все же я даже не вижу вызовов сценария в /var/log/debug.log. Я уверен, что упускаю что-то простое, так как другие смогли заставить это работать, у меня просто нет вариантов, так как я думаю, что прочитал и / или перепробовал все, что мог найти в связи с этой проблемой. Спасибо!

1 ответ

Решение

Сценарий полагается на /bin/bash присутствовать внутри тюрьмы. Вы можете изменить скрипт для использования /bin/sh, менять /bin/bash в /usr/bin/env bash или ссылка /path/to/port/bin/bash в /usr/local/bin/bash (или где угодно bash расположен относительно каталога тюрьмы, но если он существует, он должен быть в /usr/local/bin).

ln -s /usr/local/bin/bash /path/to/jail/bin/bash

Кроме того, корневой каталог (по умолчанию) доступен для записи только root, Итак transmission У пользователя не будет разрешения на создание файла журнала в корневом каталоге. Чтобы правильно разрешить создание файла журнала, измените каталог назначения на тот, который transmission Пользователь имеет разрешение на запись в. Например /var/db/transmission/posttorrent.log, если используется плагин FreeNAS. Каталог может быть создан для transmission пользователь, использующий утилиту установки:

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 должен быть остановлен перед редактированием файла настроек. Однако при использовании плагина Transmission настройки сохраняются в базе данных SQLite.
(/usr/pbi/transmission-amd64/transmissionUI/transmission.db)
и файл настроек будет воссоздан из базы данных при запуске. sqlite3 может использоваться для ручного редактирования базы данных, или настройки плагина могут быть отредактированы в веб-интерфейсе FreeNAS.

sqlite3 /usr/pbi/transmission-amd64/transmissionUI/transmission.db <<EOF
UPDATE freenas_transmission SET enable=1;
UPDATE freenas_transmission SET script_post_torrent="/posttorrent.sh";
Другие вопросы по тегам