Ejecute un script de forma remota en un servidor Windows

Ejecute un script de forma remota en un servidor Windows

Mi situación es esta. Quiero ejecutar un script presionando un botón en mi sitio web (página de control de administrador). Mi servidor web (linux) y mi caja dedicada (windows 2012) están en diferentes ubicaciones.


Por ejemplo:

Página del servidor web | Servidor Ded
                                            |
'Reiniciar aplicación' ------>------>---|-->->Script_To_Restart_App



El servidor de Windows 2012 no ejecuta el servicio de servidor web de Windows IIS. Prefiero no ejecutarlo porque no ejecutará una página web.

¿Hay alguna forma de que esto sea posible?

Gracias,

Clayton

Respuesta1

Lo que estás sugiriendo no es trivial. Hay un par de enfoques:

  1. Haga que su aplicación que se ejecuta en el cuadro de Windows escuche los mensajes que le indican que se reinicie. Cuando reciba ese mensaje, reinicie. Hay varias formas de escuchar dicho mensaje y puede elegir la más sencilla según cómo haya creado la aplicación. Por ejemplo, comience a escuchar en un puerto conocido y cuando reciba un mensaje que diga "reiniciar", hágalo. Obviamente, esto requiere la capacidad de cambiar la aplicación. Una variante de esto es crear otra aplicación/servicio que simplemente escuche los mensajes de reinicio y detenga/inicie la aplicación original. Esto podría ser deseable si no puedes cambiar tu aplicación original o prefieres no hacerlo.

  2. Utilice algo en Windows para reiniciar la aplicación. Hay formas integradas (por ejemplo, WMI) para reiniciar servicios y probablemente para iniciar y detener procesos. Esto es más difícil porque desea hacerlo desde una caja que no sea de Windows. Hay una gran herramienta 'psexec'http://technet.microsoft.com/en-gb/sysinternals/bb897553.aspxeso hace que sea realmente fácil hacer esas cosas de forma remota, y hay una versión para Linuxhttp://steronius.blogspot.co.uk/2013/05/psexec-via-linux.htmlentonces eso podría funcionar bien. Esto no requerirá programación, pero sí más problemas con la configuración y la autenticación... tal vez, o podría funcionar de inmediato. Llamaría a psexec desde su script php con los argumentos de línea de comando necesarios para que reinicie su aplicación de Windows.

Respuesta2

Eche un vistazo a winexe. Es una herramienta de línea de comandos para Linux similar a la herramienta psexec de Windows. Winexe ejecuta comandos de forma remota en sistemas Windows desde Linux. Los paquetes para winexe para varias distribuciones comunes de Linux están disponibles enpaquete openSUSE winexesitio web.

información relacionada