PHP-скрипт, который я хочу, чтобы он запускался клиентом Transmission!

В Transmission-GTK есть опция, позволяющая запустить скрипт: Правка> Настройки> Загрузка> Вызов скрипта, когда торрент завершен .

Недавно я обнаружил этот сценарий , что я не знаю, как заставить его работать при передаче. Согласно описанию программы, скрипт не отключает систему, но он может прервать передачу после того, как все торренты сделаны. для меня этого достаточно, потому что я могу соединить « выключение » с « закрытием коробки передач » на &&.

А теперь, ребята, можете ли вы помочь мне запустить этот php-скрипт при передаче?

это пример, упомянутый автором сценария: php.exe Transmission_Quit.php --port=9999 --hostname=192.168.0.1; что это значит?! как я должен использовать это? Стоит ли указывать на опцию « Call script, когда торрент завершен »?

0
задан 30 April 2013 в 16:54

1 ответ

Я оставляю это, чтобы продолжить исходный вопрос, который просит запустить определенный скрипт php. Но для решения основной проблемы в разделе «Новый рецепт» предусмотрен обходной путь.

Пожалуйста, попробуйте это и сообщите о своих результатах, после чего этот ответ может быть изменен или удален:

В определенный момент ваш пароль может быть задан.

  1. Прежде всего, давайте создадим файл с именем script.php, поместив его в терминал sudo gedit script.php (помните, что вы можете поместить этот файл в любую папку, какую пожелаете, но для целей проверки ваша домашняя папка будет хорошей) .
  2. В этом файле давайте скопируем / вставим содержимое сценария, который вы упомянули. Сохраните файл и закройте его.
  3. Теперь давайте дадим файлу надлежащие права доступа к файлу и разрешение на выполнение, также удалив следующие две строки в терминале, по одной строке за раз.

    sudo chmod 755 script.php

    sudo chmod a + x script.php

  4. Теперь давайте установим 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).

Затем давайте приготовим фаст-фуд:

  1. Нам нужен файл, назовем его bye.sh и поместим его где-нибудь, ваша домашняя папка - хорошее место для тестирования.
  2. Вставьте следующую внутреннюю часть файла (здесь скрипт быстрого питания ), сохраните его, закройте и дайте ему разрешения на выполнение. (для справки, опустите этот ответ и найдите как).

enter image description here

  • Затем разместите его на вкладке «Загрузка» передачи, но убедитесь, что вы включили правильный файл bye.sh, который будет вызываться при загрузке отделка.

enter image description here

Вот и все. Мне нужно как-то объяснить, что скрипт php работает успешно, но после окончания загрузки наблюдается небольшая задержка, и я только что протестировал 2 небольших торрент-файла. Я не могу сказать, увеличится ли задержка, если список будет длиннее или объем загрузки будет тяжелее, поведение, которое не наблюдается формулой New Recipe. Тем не менее, файл PHP дает вам гарантию, что он будет работать в любой ОС, поддерживающей PHP, и мой Новый рецепт в основном предназначен для систем на основе Linux, он работает на Ubuntu и может преуспеть в других дистрибутивах, на основе Debian или Ubuntu, и некоторые модификации позволят ему преуспеть в других дистрибутивах, не основанных на Debian / Ubuntu.

Удачи!

Новый рецепт

ОК У меня есть новый рецепт для этого случая, я признаю, что он привлек все мое внимание, даже когда я не так часто использую Transmission.

Рецепт

Ингредиенты

  1. translation-gtk (устанавливается каким-либо образом из пакета программ, терминала и т. Д.)
  2. transmission-cli (sudo apt -установите передачу-cli, введите пароль, дождитесь окончания установки.)
  3. The Script . (приготовлено отдельно)

Подготовка

  • Давайте подготовим нашу передачу, чтобы получать петиции веб-клиента извне, чтобы мы могли отслеживать, что происходит в нашей программе. Давайте откроем Transmission и перейдем на вкладку «Web», чтобы включить флажок «Enable web client», как показано на следующем скриншоте.

enter image description here

(Значения по умолчанию отлично справятся с задачей)

  • Давайте откроем наш любимый текстовый редактор по порядку создать файл с именем byebye.sh и поместим в него следующее содержимое. (См. Скрипт здесь )

enter image description here

Теперь давайте найдем файл bybye.sh и дадим это правильные разрешения на выполнение, для этого нужно открыть терминал sudo chmod a+x bybye.sh или ввести свойства файла в Nautilus и установить флажок «Разрешить выполнение файла как программы» в «Разрешения», как показано на следующем снимке экрана.

enter image description here

  • После того, как мы подготовили сценарий, давайте установим transmission-cli в выпадающем списке терминала: sudo apt-get install transmission-cli, нажмите Enter и введите свой пароль, после чего программное обеспечение будет установлено.

Время для дегустации

В терминале удалите transmission-remote --list | sed '1d;$d' | grep -v Done | wc -l, после чего результаты могут отличаться от случая к случаю, в зависимости от количества торрентов, ожидающих или загружаемых в данный момент при передаче. Если результаты отличаются от 0, мы на нашем пути. Если вы получили 0 и что-то загружается или находится в очереди, вы должны проверить рецепт с самого начала. Если вы получили сообщение об ошибке, напишите об этом в комментарии, чтобы обеспечить поддержку.

  • Если все идет хорошо, теперь давайте поручим передаче запускать сценарий каждый раз, когда торрент завершается. CALM DOWN! Пожалуйста, успокойтесь ... скрипт будет запускаться каждый раз, когда торрент полностью загружен, но он будет запускать действие по прекращению передачи только тогда, когда результаты загрузок равны нулю. Этот условный способ дает нам спокойствие, что передача не будет закрываться при каждой загрузке. Для вашего удобства предоставляется скриншот:

enter image description here

И вуаля! Рецепт может быть подан в больших порциях и в компании всех ваших загрузок. Передача закроется, только если последняя загрузка прошла успешно.

НЕКОТОРЫЕ ПРЕДУПРЕЖДЕНИЯ

Если передача имеет только одно ожидающее действие, и загрузка заканчивается в самый момент открытия программного обеспечения, передача закрывается, как только открывается.

Глоссарий:

killall -9 transmission = Закрывает передачу в мягком режиме, чтобы вы не получали сообщение об ошибке при каждом его закрытии. Простое использование killall transmission приведет к грубому закрытию, поэтому программное обеспечение сообщит о сбое.

Теперь убедитесь, что вы подаете мне в стол стакан с превосходным кубинским ромом, когда подают рецепт, и ...

Удачи!

0
ответ дан 30 April 2013 в 16:54

Другие вопросы по тегам:

Похожие вопросы: