Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Telnet (Ejecutar Comandos En Un Servidor Unix Remoto) (SOLUCIÓN ALTERNATIVA)

Telnet (Ejecutar Comandos En Un Servidor Unix Remoto) (SOLUCIÓN ALTERNATIVA)
Artículo
Responder citando    Descargar mensaje  
Mensaje Telnet (Ejecutar Comandos En Un Servidor Unix Remoto) (SOLUCIÓN ALTERNATIVA) 
 
Hola a todos.

Quiero automatizar ciertos procesos que tengo en un servidor Unix, pero no tengo ni idea de cómo hacerlo desde gambas.

Lo que quiero es lanzar procesos desde mi Ubuntu con gambas a un servidor remoto Unix, del cual tengo su IP, usuario y contraseña.

Gracias por la ayuda.



 
última edición por dquinter el Lunes, 02 Abril 2012, 18:32; editado 1 vez 
dquinter - Ver perfil del usuario Enviar mensaje privado  
dquinter [ Viernes, 30 Marzo 2012, 02:54 ]
 


Telnet (Ejecutar Comandos En Un Servidor Unix Remoto) (SOLUCIÓN ALTERNATIVA)
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: Telnet (Ejecutar Comandos En Un Servidor Unix Remoto) 
 
Creo que lo mas sensato sería usar SSH. Puedes usar el shell para establecer la conexión y capturar las salidas del proceso como un socket cualquiera.

Si  necesitas mas detalles no dudes en preguntar, saludos



 
jguardon - Ver perfil del usuario Enviar mensaje privado  
jguardon [ Viernes, 30 Marzo 2012, 09:25 ]
Responder citando    Descargar mensaje  
Mensaje Re: Telnet (Ejecutar Comandos En Un Servidor Unix Remoto) (SOLUCIÓN ALTERNATIVA) 
 
Hola, gracias por responder. El problema es que el servidor no tiene SSH.

Pero encontré una solución que le da la vuelta a mi problema.

Hay que instalar Expect:
Citar:
"Expect es una herramienta para automatizar aplicaciones interactivas usando un script. Mediante el script, Expect conoce lo que se espera del programa y cómo debería ser la respuesta correcta. Expect también es muy útil para probar esas aplicaciones. Y añadiendo Tk, puede contener aplicaciones interactivas en interfaces de usuario X11. Un lenguaje interpretado proporciona un control de alto nivel de ramificaciones y de estructuras para manejar el diálogo. Además, el usuario puede tomar el control e interactuar directamente cuando quiera, para después devolver el control al script."


Nota: Expect depende de Tcl.

Este es un script que hace lo que necesito (La solución original está aquí, en inglés):

Código: [Descargar] [Ocultar]
  1. #!/usr/bin/expect -f  
  2.  
  3. # this_script "address" "username" "password" "command"  
  4. # This command is used to hide the conversationn between the script and the other machine  
  5. log_user 0  
  6.  
  7. # Assign the first passed parameter while calling the script to $address  
  8. set address [lindex $argv 0]  
  9.  
  10. # Assign the 2nd passed parameter while calling the script to $username  
  11. set username [lindex $argv 1]  
  12.  
  13. # Assign the 3rd passed parameter while calling the script to $password  
  14. set password [lindex $argv 2]  
  15.  
  16. # Assign the 4th passed parameter while calling the script to $command  
  17. set command [lindex $argv 3]  
  18.  
  19. # Start the telnet session to machine with IP=$address  
  20. spawn telnet ${address}  
  21.  
  22. # Start conversation with the machine:  
  23. expect "login:"  
  24. send -- "${username}\r"  
  25. expect "Password:"  
  26. send -- "${password}\r"  
  27. expect "$ "  
  28.  
  29. # Declare the shell to be used (optional)  
  30. #send -- "#!/bin/ksh\r"  
  31. #expect "$ "  
  32.  
  33. # Execute the command  
  34. send -- "${command}\r"  
  35. expect "$ "  
  36.  
  37. # End the telnet session and exit the script  
  38. send -- "exit\r" 


Se graba como telnet_command, se le dan permisos de ejecución chmod +x telnet_command y se ejecuta de la siguiente manera:

telnet_command "dirección IP" "usuario" "contraseña" "comando"

Ejemplo:

Código: [Descargar] [Ocultar]
  1. $ ./telnet_command 10.94.232.83 mi_usuario mi_pass /home/mi_usuario/prueba.sh 


En gambas el código sería así:

Shell "~/mi_ruta/telnet_command 10.94.232.83 mi_usuario mi_pass /home/mi_usuario/prueba.sh" Wait


Espero que a alguien más le sirva.

Y de todos modos, si alguien tienen idea de hacerlo con puro código gambas, ésta será muy bien recibida.

Daniel



 
última edición por dquinter el Lunes, 02 Abril 2012, 18:33; editado 1 vez 
dquinter - Ver perfil del usuario Enviar mensaje privado  
dquinter [ Lunes, 02 Abril 2012, 17:56 ]
Responder citando    Descargar mensaje  
Mensaje Re: Telnet (Ejecutar Comandos En Un Servidor Unix Remoto) (SOLUCIÓN ALTERNATIVA) 
 
Bueno, no está mal la solución, aunque bastante insegura. Como sabes, toda la información trasmitida por telnet viaja sin encriptar, incluidas las contraseñas. Cualquiera podría ver esa información si se interviene la conexión.

Por eso lo de SSH...

Saludos



 
jguardon - Ver perfil del usuario Enviar mensaje privado  
jguardon [ Martes, 03 Abril 2012, 00:19 ]
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 1
 
Publicar nuevo tema  Responder al tema  Página 1 de 1
 
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno