![Nueva receta](https://rvso.com/image/1114972/Nueva%20receta.png)
En Transmission-gtk hay una opción para ejecutar el script:Editar > Preferencias > Descargando > Llamar script cuando se complete el torrent.
Recientemente encontréeste guiónque no se como hacer que funcione bajo transmision. Según la descripción del programa, el script no apaga el sistema, pero puede interrumpir la transmisión una vez finalizados todos los torrents. eso me basta porque puedo encadenar”apagando" a "transmisión de cierre" por &&
.
Ahora, chicos, ¿podrían ayudarme a ejecutar este script php en transmisión?
este es un ejemplo mencionado por el autor del script:
php.exe Transmission_Quit.php --port=9999 --hostname=192.168.0.1
; ¡¿Qué quiere decir esto?! ¿Cómo debo usarlo? ¿Debería señalarlo a "Llame al script cuando se complete el torrent"opción directamente?
Respuesta1
Dejo esto para continuar con la pregunta original que solicita ejecutar un script php específico. Pero en la sección Nueva receta se proporciona una solución para resolver el problema principal.
Intente esto e informe sobre sus resultados, después de lo cual esta respuesta puede cambiarse o eliminarse:
En un momento determinado es posible que se le solicite su contraseña.
- En primer lugar, creemos un archivo llamado script.php colocándolo en una terminal
sudo gedit script.php
(recuerde que puede colocar este archivo en cualquier carpeta que desee, pero para fines de prueba, su carpeta de inicio será buena). - En el archivo, copiemos/peguemos el contenido del script que mencionas. Guarde el archivo y ciérrelo.
Ahora démosle al archivo los permisos de archivo adecuados y el permiso de ejecución también colocando las siguientes dos líneas en una terminal, una línea a la vez.
sudo chmod 755 script.php
sudo chmod a+x script.php
Ahora, instalemos php5-cli colocando una terminal
sudo apt-get install php5-cli
y esperemos que la terminal finalice el proceso de instalación.
Una vez php5-cli
instalado podemos probar el script invocándolo php script.php --port=9999 --hostname=192.168.0.1;
en una terminal, pero será mejor si lo haces desde dentro de Transmission.
php5-clies un intérprete de línea de comandos para el lenguaje de scripting PHP5 y es útil para ejecutar scripts php como este, se parece más al archivo php.exe para Windows, al que hace referencia en su pregunta original.
Espero que tenga éxito, pero informe sus resultados para brindar el soporte adecuado o elimine esta respuesta si no es útil.
Apéndice
Después de leer tus comentarios, te doy esta receta de comida rápida para el script php.
En primer lugar necesito explicar ciertas cosas del ejemplo dado por el autor del guión, de la siguiente manera:
script.php --port=9999 --hostname=192.168.0.1;
--port=9999
= 9999 es un puerto de ejemplo, pero en este campo debes escribir el mismo número de puerto que defines en la pestaña del cliente web.--hostname=192.168.0.1
= Debe ser la ip del equipo en el que desea que se ejecute el script para finalizar el proceso de transmisión.
Esto me hace pensar que el proceso se puede invocar de forma remota pero para nuestro caso particular vamos a usar los valores predeterminados por lo que no necesitamos incluir ni el puerto ni el nombre de host. Simplemente ejecutando el script.php
archivo en una terminal o invocándolo por transmisión, utilizará los valores predeterminados que se aplican a nuestra computadora ( localhost
).
Entonces, cocinemos comida rápida:
- Necesitamos un archivo, llamémoslo bye.sh y colóquelo en algún lugar; su carpeta de inicio es un buen lugar para realizar pruebas.
- Inserte el siguiente interior del archivo (guión de comida rápida aquí), guárdalo, ciérralo y dale permisos de ejecución. (como referencia, consulte esta respuesta y descubra cómo).
- Luego, sírvelo dentro de la pestaña "Descargar" de tu Transmisión, pero asegúrate de incluir el archivo bye.sh adecuado para que se invoque cuando finalice la descarga.
Eso es todo.Necesito explicar que de alguna manera, el script php está funcionando correctamente, pero observa un pequeño retraso una vez finalizadas las descargas y acabo de probar con 2 archivos torrent pequeños. No puedo decir si la demora aumentará si la lista es más larga o el tamaño de la descarga es mayor, comportamiento que no se observa en la fórmula Nueva receta. Sin embargo, el archivo PHP le da la garantía de que se ejecutará en cualquier sistema operativo que sea compatible con PHP, y mi nueva receta está destinada principalmente a sistemas basados en Linux, funciona en Ubuntu y puede tener éxito en otras distribuciones, basadas en Debian o Ubuntu. y ciertas modificaciones le permitirán tener éxito en otras distribuciones no basadas en Debian/Ubuntu.
¡Buena suerte!
Nueva receta
OK, tengo una nueva receta para este caso, admito que llamó toda mi atención, incluso cuando no uso Transmission con tanta frecuencia.
La receta
Ingredientes
- Transmission-gtk (instalado de alguna manera, desde la bolsa de software, terminal, etc.)
- Transmission-cli (sudo apt-get install Transmission-cli, proporcione la contraseña, espere a que finalice la instalación).
- La secuencia de comandos. (cocido aparte)
Preparación
- Preparemos nuestra transmisión para recibir peticiones de clientes web desde el exterior, de esta manera podemos monitorear lo que sucede en nuestro programa. Abramos Transmisión y vayamos a la pestaña "Web" para habilitar la casilla de verificación "Habilitar cliente web" como se muestra en la siguiente captura de pantalla.
(Los valores predeterminados funcionarán perfectamente)
- Abramos nuestro editor de texto favorito para crear un archivo llamado
byebye.sh
y coloquemos el siguiente contenido dentro. (Ver el guiónaquí)
Ahora, busquemos el archivo bybye.sh y otorguemos los permisos de ejecución adecuados colocando una terminal sudo chmod a+x bybye.sh
o ingresando las propiedades del archivo en Nautilus y activando la casilla de verificación "Permitir ejecutar el archivo como programa" en "Permisos" como se muestra a continuación. captura de pantalla.
- Una vez que hayamos preparado el script, instalemos
transmission-cli
, en una terminal:,sudo apt-get install transmission-cli
presione Enter y proporcione su contraseña, después de lo cual se instalará el software.
Hora de degustar
En un terminal, baja transmission-remote --list | sed '1d;$d' | grep -v Done | wc -l
tras lo cual los resultados pueden variar de un caso a otro, dependiendo de la cantidad de torrents que estén pendientes o descargando actualmente en transmisión. Si los resultados son diferentes a los que 0
estamos en camino. Si recibes 0
y algo se está descargando o en cola, debes revisar la receta desde el principio. Si recibe un error, déjelo en un comentario para brindarle asistencia.
- Si todo va bien, ahora indiquemos a la transmisión que ejecute el script cada vez que se complete un torrent.¡CÁLMATE!Por favor, tranquilo... el script se ejecutará cada vez que un torrent se descargue por completo, pero solo activará la acción para finalizar la transmisión justo cuando el resultado de la descarga sea igual a cero. Esta forma condicional nos da la tranquilidad de que la transmisión no se cerrará en cada descarga. Se proporciona una captura de pantalla para su comodidad:
¡Y voilá! La receta la puedes servir en porciones generosas y en compañía de todas tus descargas. La transmisión se cerrará sólo si la última descarga se realizó correctamente.
ALGUNAS ADVERTENCIAS
Si Transmission tiene solo una acción pendiente y la descarga finaliza en el mismo momento en que se abre el software, Transmission se cerrará tan pronto como se abra.
Glosario:
killall -9 transmission
= Cerrará la transmisión en modo suave para que no reciba un mensaje de error cada vez que se cierre. Simplemente usarlo killall transmission
lo cerrará de manera grosera, por lo que el software informará una falla de cierre.
Ahora, no olvides incluirme en la mesa un vaso con excelente ron cubano al momento de servir la receta y…
¡Buena suerte!