![Nova receita](https://rvso.com/image/1114972/Nova%20receita.png)
No Transmission-gtk existe uma opção que pode executar o script:Editar > Preferências > Baixando > Chamar script quando o torrent for concluído.
Recentemente, descobrieste roteiroque não sei como fazê-lo funcionar na transmissão. De acordo com a descrição do programa, o script não desliga o sistema, mas pode interromper a transmissão após a conclusão de todos os torrents. isso é o suficiente para mim porque posso acorrentar "desligando" para "transmissão de fechamento" por &&
.
Agora, pessoal, vocês podem me ajudar a executar esse script php em transmissão?
este é um exemplo mencionado pelo autor do script:
php.exe Transmission_Quit.php --port=9999 --hostname=192.168.0.1
; O que isto significa?! como devo usá-lo? Devo apontar para "Chame o script quando o torrent for concluído"opção diretamente?
Responder1
Estou deixando isso para dar seguimento à pergunta original que pede para executar um script php específico. Mas uma solução alternativa é fornecida na seção Nova receita para resolver o problema principal.
Por favor, tente isto e informe seus resultados, após o que esta resposta pode ser alterada ou excluída:
Em determinado momento sua senha poderá ser solicitada.
- Primeiro de tudo, vamos criar um arquivo chamado script.php inserindo um terminal
sudo gedit script.php
(lembre-se que você pode colocar esse arquivo em qualquer pasta que desejar, mas para fins de teste sua pasta pessoal será boa). - No arquivo, vamos copiar/colar o conteúdo do script que você mencionou. Salve o arquivo e feche-o.
Agora vamos dar ao arquivo as permissões de arquivo adequadas e a permissão de execução também, soltando as próximas duas linhas em um terminal, uma linha por vez.
sudo chmod 755 script.php
sudo chmod a+x script.php
Agora, vamos instalar o php5-cli inserindo um terminal
sudo apt-get install php5-cli
e esperar que o terminal termine o processo de instalação.
Depois de php5-cli
instalado podemos testar o script invocando php script.php --port=9999 --hostname=192.168.0.1;
um terminal, mas será melhor se você fizer isso de dentro do Transmission.
php5-clié um interpretador de linha de comando para a linguagem de script PHP5 e é útil para executar scripts php como este, é mais parecido com o arquivo php.exe para Windows, aquele que você mencionou na sua pergunta original.
Espero que você tenha sucesso, mas informe seus resultados para fornecer o suporte adequado ou exclua esta resposta se não for útil.
Termo aditivo
Depois de ler seus comentários, apresento esta receita de fast-food para o script php.
Antes de mais nada preciso explicar algumas coisas do exemplo dado pelo autor do roteiro, como segue:
script.php --port=9999 --hostname=192.168.0.1;
--port=9999
= 9999 é uma porta de exemplo, mas neste campo você deve escrever o mesmo número de porta que você definiu na aba do cliente Web.--hostname=192.168.0.1
= Deve ser o ip do equipamento que deseja que o script execute para encerrar o processo de transmissão.
Isso me faz pensar que o processo pode ser invocado remotamente, mas para o nosso caso particular usaremos os valores padrão para que não precisemos incluir nem a porta nem o nome do host. Simplesmente executando o script.php
arquivo em um terminal ou invocado por transmissão e ele utilizará os valores padrão que se aplicam ao nosso computador ( localhost
).
Então, vamos cozinhar fast food:
- Precisamos de um arquivo, vamos chamá-lo de bye.sh e colocá-lo em algum lugar, sua pasta pessoal é um bom lugar para fins de teste.
- Insira o próximo dentro do arquivo (roteiro de fast food aqui), salve-o, feche-o e conceda-lhe permissões de execução. (para referência, leia esta resposta e descubra como).
- Em seguida, sirva-o na guia "Download" do Transmission, mas certifique-se de incluir o arquivo bye.sh adequado a ser invocado quando o download terminar.
É isso.Preciso explicar que de alguma forma o script php está funcionando, mas observa um pequeno atraso após o término dos downloads e acabei de testar com 2 pequenos arquivos torrent. Não sei dizer se o atraso aumentará se a lista for maior ou o tamanho do download for mais pesado, comportamento que não é observado pela fórmula da Nova Receita. No entanto, o arquivo PHP dá a você a garantia de que será executado em qualquer sistema operacional compatível com PHP, e minha nova receita é destinada principalmente a sistemas baseados em Linux, funciona no Ubuntu e pode ter sucesso em outras distribuições, baseadas em Debian ou Ubuntu, e certas modificações permitirão que ele tenha sucesso em outras distribuições não baseadas em Debian/Ubuntu.
Boa sorte!
Nova receita
OK, tenho uma receita nova para este caso, admito que chamou toda a minha atenção, mesmo quando não uso o Transmission com tanta frequência.
A receita
Ingredientes
- transmissão-gtk (instalado de alguma forma, na embalagem do software, terminal, etc.)
- transmissão-cli (sudo apt-get install transmissão-cli, forneça a senha, aguarde a conclusão da instalação.)
- O roteiro. (cozido à parte)
Preparação
- Vamos preparar nossa transmissão para receber petições de clientes web de fora, assim poderemos monitorar o que está acontecendo em nosso programa. Vamos abrir o Transmission e ir para a aba "Web" para habilitar a caixa de seleção "Ativar cliente web", conforme mostrado na próxima imagem.
(Os valores padrão funcionarão perfeitamente)
- Vamos abrir nosso editor de texto favorito para criar um arquivo chamado
byebye.sh
e colocar o próximo conteúdo dentro dele. (Veja o roteiroaqui)
Agora, vamos encontrar o arquivo bybye.sh e conceder a ele as permissões de execução adequadas, inserindo um terminal sudo chmod a+x bybye.sh
ou inserindo as propriedades do arquivo no Nautilus e ativando a caixa de seleção "Permitir execução de arquivo como programa" em "Permissões", conforme mostrado a seguir. captura de tela.
- Depois de preparar o script, vamos instalar
transmission-cli
, em um terminal:,sudo apt-get install transmission-cli
pressione Enter e forneça sua senha, após a qual o software será instalado.
Hora da degustação
Em um terminal, drop transmission-remote --list | sed '1d;$d' | grep -v Done | wc -l
após o qual os resultados podem variar de caso para caso, dependendo da quantidade de torrents que estão pendentes ou baixando em transmissão. Se os resultados forem diferentes, 0
estamos a caminho. Se você receber 0
e algo estiver baixando ou na fila, você deve conferir a receita desde o início. Se você receber um erro, deixe-o em um comentário para fornecer suporte.
- Se tudo estiver indo bem, agora vamos instruir a transmissão para executar o script toda vez que um torrent for concluído.ACALMAR!Por favor, calma... o script será executado toda vez que um torrent for baixado completamente, mas só acionará a ação para encerrar a transmissão quando o resultado dos downloads for igual a zero. Essa forma condicional nos dá a tranquilidade de que a transmissão não será encerrada a cada download. Uma captura de tela é fornecida para sua conveniência:
E pronto! A receita pode ser servida em porções generosas e na companhia de todos os seus downloads. A transmissão será encerrada apenas se o último download for bem-sucedido.
ALGUNS AVISOS
Se o Transmission estiver com apenas uma ação pendente e o download terminar no exato momento da abertura do software, o Transmission irá fechar assim que abrir.
Glossário:
killall -9 transmission
= Fechará a transmissão suavemente para que você não receba uma mensagem de erro cada vez que for fechada. Simplesmente usar killall transmission
irá fechá-lo de forma rude, assim o software reportará uma falha de fechamento.
Agora, certifique-se de incluir na mesa um copo com excelente rum cubano para mim na hora de servir a receita e...
Boa sorte!