2011-08-12 18 views
7

Estoy tratando de ejecutar un archivo bat en una máquina remota de Windows en la nube desde mi Linux. Los archivos bat inician el servidor de selenio y luego se ejecutan mis pruebas de selenio. No puedo iniciar el servidor RC de selenio en esa máquina. Intenté con Telnet pero el problema es que cuando la sesión de Telnet está cerrada, el puerto del servidor RC también se cierra. Como mi código mi código tiene que iniciar el servidor, intenté con la tarea ANT telnet y también ejecuté el script de shell de telnet en ambos sentidos, el puerto se cerró.Ejecutando archivo exe o bat en la máquina remota de Windows desde * nix

He leído sobre Open SS, psexec para linux y cygwin. Pero no entiendo cómo usarlos y resolverán mi problema.

He intentado iniciar un servicio que iniciará el servidor pero en este método no estoy visualizando el navegador todas las pruebas se ejecutan en segundo plano ya que mi script requiere una visibilidad de navegador de captura de pantalla.

Ahora mi pregunta es qué usar y cuál será preferible para mi trabajo. y lo que yo elijo debe ejecutarse por código, puede ser por shell, ant o php.

Gracias de antemano.

+0

Las respuestas también deben tener la capacidad de ejecutarse desde el script de shell – lAH2iV

Respuesta

7

Prefiero usar cygwin y usar SSH para luego iniciar sesión en la máquina de Windows para ejecutar comandos. Tenga en cuenta que, de forma predeterminada, cygwin no tiene instalado OpenSSH.

Una vez que tenga SSH trabajar en la máquina ventanas se puede ejecutar un comando en él desde la máquina Linux como esto:

ssh [email protected] 'mycommand.exe' 

También puede configurar ssh authentication teclas de modo que no es necesario introducir una contraseña cada vez

+0

También puede usar la contraseña y la utilidad [sshpass] (https://sourceforge.net/projects/sshpass/) –

-3

No es una forma muy segura, pero si tiene un servidor web en ejecución, puede usar PHP o ASP para activar un comando del sistema. Simplemente oculta el script thgat en www.myserver.com/02124309c9867a7616972f52a55db1b4.php o algo así. Y asegúrese de que el comando esté fijo escrito en el código, no se abra a través del parámetro ...

15

Vamos a través de las diversas opciones que usted ha mencionado:

  • psexec: Este es prácticamente un único PC. Además, debe asegurarse de que las máquinas con Windows más nuevas puedan acceder a través del UAC configurado de manera predeterminada. UAC es lo que ves todo el tiempo en Vista y Windows 7 cuando intentas hacer algo que requiere privilegios de administrador. Puede probar algo llamado winexe que es un programa de Linux que puede hacer el protocolo psexec, pero he tenido problemas para hacerlo funcionar.
  • OpenSSH: Hay dos sabores principales de SSH, y Open SSH es el utilizado por la gran mayoría de los sitios. SSH tiene varias ventajas sobre otros métodos:
    • SSH es seguro: el tráfico de su red está encriptado.
    • SSH puede ser independiente de la contraseña: Puede configurar SSH para usar claves privadas/públicas. De esta forma, ni siquiera tiene que saber la contraseña en el servidor remoto. Esto lo hace más seguro ya que no tiene contraseñas almacenadas en varios sistemas. Y, en muchos sitios de Windows, las contraseñas deben cambiarse aproximadamente cada mes o la cuenta está bloqueada.
    • SSH puede hacer mucho más que ejecutar comandos remotos: hay dos sub protocolos en SSH llamados SCP y SFTP. Estos le permiten transferir archivos entre dos máquinas. Dado que funcionan sobre SSH, usted obtiene todas las ventajas de SSH incluyendo paquetes encriptados y protección de clave pública/privada.
    • SSH está bien implementado en el mundo Unix: encontrará clientes SSH integrados en Ant, Maven y otras herramientas de compilación. Programas como CVS, Subversion y Git también pueden funcionar a través de conexiones SSH. Desafortunadamente, Windows World opera en una dimensión de espacio-tiempo diferente. Para usar SSH en un sistema Windows se necesita un software de terceros como Cygwin.
  • Cygwin: Cygwin es una especie de bestia extraña. Es una capa en la parte superior de Windows que permite que muchas de las bibliotecas de Unix/GNU funcionen en Windows. Originalmente fue desarrollado para permitir a los desarrolladores de Unix ejecutar su software en Windows sistemas DOS. Sin embargo, Cygwin ahora contiene un sistema completo de Unix que incluye herramientas como Perl y Python, shell BASH y muchas utilidades como un servidor SSH. Como Cygwin es de código abierto, puedes descargarlo de forma gratuita y ejecutar el servidor SSH. Desafortunadamente, he tenido problemas con el servidor SSH de Cygwin. Otro problema: si está ejecutando programas de forma remota, es probable que desee ejecutarlos en un entorno Windows y no en el entorno Cygwin.

Le recomiendo que consulte WinSSHD de Bitvise. Es una implementación de OpenSSH del servidor SSH, pero no es de código abierto. Se trata de $ 100 por licencia y necesita una licencia en cada servidor. Sin embargo, es una implementación robusta y tiene todas las características que SSH tiene para ofrecer.

Puede mirar CoSSH que es un paquete de utilidades Cygwin y servidor OpenSSH. Esto es gratis y todo de código abierto, pero si quieres una manera fácil de configurarlo, tienes que pagar por el Advanced Administrator Console. No necesita la Consola de administrador avanzada ya que puede usar Cygwin para configurar todo, y viene con una consola básica para ayudar.

Cuestiones relacionadas