![Новый Рецепт](https://rvso.com/image/1114972/%D0%9D%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%A0%D0%B5%D1%86%D0%B5%D0%BF%D1%82.png)
В transmission-gtk есть опция запуска скрипта:Редактировать > Настройки > Загрузка > Вызвать скрипт после завершения торрента.
Недавно я обнаружил,этот сценарийчто я не знаю, как заставить его работать под transmission. Согласно описанию программы, скрипт не выключает систему, но он может убить transmission после того, как все торренты будут сделаны. этого достаточно для меня, потому что я могу цепочку "Выключение" к "закрытие передачи" к &&
.
А теперь, ребята, можете ли вы мне помочь запустить этот PHP-скрипт при передаче?
это пример, упомянутый автором сценария:
php.exe Transmission_Quit.php --port=9999 --hostname=192.168.0.1
; что это значит?! как мне это использовать? Должен ли я указать на это "Вызов скрипта после завершения торрента"вариант напрямую?
решение1
Я оставляю это, чтобы продолжить исходный вопрос, в котором предлагается запустить определенный скрипт php. Но в разделе «Новый рецепт» представлен обходной путь для решения основной проблемы.
Попробуйте это и сообщите о результатах, после чего этот ответ может быть изменен или удален:
В определенный момент у вас могут спросить пароль.
- Прежде всего, давайте создадим файл script.php, перетащив его в терминал
sudo gedit script.php
(помните, что вы можете поместить этот файл в любую папку, но для целей тестирования подойдет ваша домашняя папка). - В файле скопируем/вставим содержимое скрипта, который вы упомянули. Сохраните файл и закройте его.
Теперь давайте предоставим файлу соответствующие права доступа и разрешение на выполнение, вставив следующие две строки в терминал, по одной за раз.
sudo chmod 755 скрипт.php
sudo chmod a+x скрипт.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, он больше похож на файл php.exe для Windows, тот, на который вы ссылаетесь в своем исходном вопросе.
Надеюсь, у вас все получится, но, пожалуйста, сообщите о результатах, чтобы оказать необходимую поддержку, или удалите этот ответ, если он бесполезен.
Приложение
Прочитав ваши комментарии, я даю вам этот рецепт быстрого приготовления для PHP-скрипта.
Прежде всего мне необходимо пояснить некоторые моменты примера, приведенного автором сценария, а именно:
script.php --port=9999 --hostname=192.168.0.1;
--port=9999
= 9999 — это пример порта, но в этом поле следует указать тот же номер порта, который вы определили на вкладке «Веб-клиент».--hostname=192.168.0.1
= Должен быть IP-адресом оборудования, на котором вы хотите запустить скрипт для завершения процесса передачи.
Это заставляет меня думать, что процесс может быть вызван удаленно, но для нашего конкретного случая мы будем использовать значения по умолчанию, так что нам не нужно будет включать ни порт, ни имя хоста. Просто запустив файл script.php
в терминале или вызвав его с помощью передачи, он будет использовать значения по умолчанию, которые применяются к нашему компьютеру ( localhost
).
Тогда давайте приготовим фастфуд:
- Нам нужен файл, назовем его bye.sh и поместим его где-нибудь. Для тестирования хорошо подойдет ваша домашняя папка.
- Вставьте следующий фрагмент внутрь файла (сценарий фастфуда здесь), сохраните его, закройте и дайте ему разрешения на выполнение. (для справки перейдите по этому ответу и узнайте, как это сделать).
- Затем поместите его на вкладку «Загрузка» в Transmission, но не забудьте включить нужный файл bye.sh, который будет вызван после завершения загрузки.
Вот и все.Мне нужно объяснить, что каким-то образом скрипт php выполняется успешно, но он наблюдает небольшую задержку после завершения загрузки, и я только что протестировал с двумя небольшими торрент-файлами. Я не могу сказать, увеличится ли задержка, если список станет длиннее или размер загрузки увеличится, поведение, которое не наблюдается в формуле New Recipe. Однако файл PHP дает вам гарантию, что он будет работать в любой ОС, которая поддерживает PHP, и мой New Recipe в основном предназначен для систем на базе Linux, он работает в Ubuntu и может успешно работать в других дистрибутивах, основанных на Debian или Ubuntu, а определенные модификации позволят ему успешно работать в других дистрибутивах, не основанных на Debian/Ubuntu.
Удачи!
Новый Рецепт
Хорошо, у меня есть новый рецепт на этот случай. Признаюсь, он привлек все мое внимание, даже несмотря на то, что я не так часто пользуюсь Transmission.
Рецепт
Ингредиенты
- transmission-gtk (устанавливается каким-либо образом, из пакета ПО, терминала и т. д.)
- transmission-cli (sudo apt-get install transmission-cli, введите пароль, дождитесь завершения установки.)
- Сценарий. (приготовлено отдельно)
Подготовка
- Давайте подготовим нашу передачу для получения петиций веб-клиента извне, таким образом мы сможем контролировать то, что происходит в нашей программе. Давайте откроем Transmission и перейдем на вкладку "Web", чтобы включить флажок "Enable web client", как показано на следующем снимке экрана.
(Значения по умолчанию подойдут идеально)
- Давайте откроем наш любимый текстовый редактор, чтобы создать файл с именем
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 запускать скрипт каждый раз после завершения торрента.УСПОКОИТЬСЯ!Пожалуйста, успокойтесь... скрипт будет запускаться каждый раз, когда торрент будет полностью загружен, но он запустит действие по прекращению передачи только тогда, когда результаты загрузок будут равны нулю. Этот условный способ дает нам спокойствие, что передача не будет прекращаться при каждой загрузке. Для вашего удобства представлен скриншот:
И вуаля! Рецепт можно подавать щедрыми порциями и в компании всех ваших загрузок. Передача закроется, как только последняя загрузка будет успешной.
НЕКОТОРЫЕ ПРЕДУПРЕЖДЕНИЯ
Если в Transmission имеется только одно ожидающее действие и загрузка завершается в момент открытия программы, Transmission закроется сразу после открытия.
Глоссарий:
killall -9 transmission
= Закроет передачу в мягком режиме, так что вы не будете получать сообщение об ошибке каждый раз, когда она закрывается. Простое использование killall transmission
закроет ее грубым образом, поэтому программное обеспечение сообщит о закрытии сбоя.
Теперь, когда будете подавать это блюдо, не забудьте поставить на стол бокал с превосходным кубинским ромом и...
Удачи!