PHP-скрипт, который я хочу, чтобы он запускался клиентом Transmission!
В translation-gtk есть опция, позволяющая запустить скрипт: Edit> Preferences> Downloading> Call script, когда торрент завершен.
Недавно я нашел этот скрипт, который я не знаю, как заставить его работать при передаче. Согласно описанию программы, скрипт не отключает систему, но он может прервать передачу после того, как все торренты сделаны. этого достаточно для меня, потому что я могу приковать "выключение" к "закрытию передачи" &&
,
Теперь, ребята, можете ли вы помочь мне запустить этот скрипт php при передаче?
это пример, упомянутый автором сценария:php.exe Transmission_Quit.php --port=9999 --hostname=192.168.0.1
; что это значит?! как я должен использовать это? Должен ли я указать на опцию "Вызвать скрипт, когда торрент завершен"?
1 ответ
Я оставляю это, чтобы продолжить исходный вопрос, который просит запустить определенный скрипт php. Но для решения главной проблемы в разделе "Новый рецепт" есть обходной путь.
Пожалуйста, попробуйте это и сообщите о своих результатах, после чего этот ответ может быть изменен или удален:
В определенный момент ваш пароль может быть задан.
- Прежде всего, давайте создадим файл с именем script.php, поместив его в терминал.
sudo gedit script.php
(помните, что вы можете поместить этот файл в любую папку по вашему желанию, но для целей проверки ваша домашняя папка будет в порядке). - В этом файле давайте скопируем / вставим содержимое сценария, который вы упомянули. Сохраните файл и закройте его.
Теперь давайте дадим файлу надлежащие права доступа к файлу и разрешение на выполнение, также удалив следующие две строки в терминале, по одной строке за раз.
sudo chmod 755 script.php
sudo chmod +x script.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 работает успешно, но после окончания загрузки наблюдается небольшая задержка, и я только что протестировал 2 небольших торрент-файла. Я не могу сказать, увеличится ли задержка, если список будет длиннее или объем загрузки будет тяжелее, поведение, которое не наблюдается формулой New Recipe. Тем не менее, файл PHP дает вам гарантию, что он будет работать в любой ОС, поддерживающей PHP, и мой Новый рецепт в основном предназначен для систем на основе Linux, он работает на Ubuntu и может преуспеть в других дистрибутивах, на основе Debian или Ubuntu, и некоторые модификации позволят ему преуспеть в других дистрибутивах, не основанных на Debian/Ubuntu.
Удачи!
Новый рецепт
Хорошо, у меня есть новый рецепт для этого случая, я признаю, что он привлек все мое внимание, даже когда я не так часто использую Transmission.
Рецепт
Ингредиенты
- Transmission-GTK (устанавливается как-то из пакета программ, терминала и т. д.)
- Transmission-Cli (sudo apt-get, установить 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 будет закрываться сразу же после его открытия.
Глоссарий:
killall -9 transmission
= Закроет передачу в мягком режиме, чтобы вы не получали сообщение об ошибке при каждом ее закрытии. Просто используя killall transmission
собирается закрыть его в грубой форме, поэтому программное обеспечение сообщит о сбое.
Теперь убедитесь, что вы подаете мне в стол бокал с превосходным кубинским ромом, когда подают рецепт, и...
Удачи!