Pregunta

Estoy tratando de hacer algunas secuencias de comandos básica usando rubí para iniciar sesión en una máquina Windows a través de telnet y tirar algunos archivos a través de FTP usando la línea de comandos DOS. Cuando hago esto todo manualmente va viento en popa, pero cuando lo intento a través de rubí que estoy recibiendo un error en la llamada de inicio de sesión.

Aquí está mi programa de pruebas en su totalidad:

require 'net/telnet'
tn = Net::Telnet::new("Host"=>"xxx.xxx.xxx.xxx", "Timeout"=>25, "Output_log"=>"output_log.log", "Dump_log"=> "dump_log.log", "Prompt"=>"C:.*>")
tn.login("administrator", "xxxxxxx") {}
tn.cmd('dir')
exit

El contenido de output_log no traicionan nada como estar equivocado:

Trying 208.10.202.187...
Connected to 208.10.202.187.
Welcome to Microsoft Telnet Service 
login: administrator
password: 
*===============================================================
Welcome to Microsoft Telnet Server.
*===============================================================
C:\Documents and Settings\Administrator>

Lo mismo para el dump_log que tiene un contenido muy similares, pero con torpeza formateados. Cuando ejecuto el programa que se encuentra alrededor por un tiempo y luego emite el siguiente error:

PS C:\code\tools\deployment> ruby test.rb
C:/Ruby/lib/ruby/1.8/net/telnet.rb:551:in `waitfor': timed out while waiting for more data (Timeout::Error)
        from C:/Ruby/lib/ruby/1.8/net/telnet.rb:685:in `cmd'
        from C:/Ruby/lib/ruby/1.8/net/telnet.rb:730:in `login'
        from test.rb:3

Lo que me lleva a sospechar que la clase telnet no está reconociendo el símbolo del sistema. He intentado varias cadenas de expresiones regulares diferentes en el parámetro prompt, incluyendo el valor por defecto y nada parece ayudar.

¿Fue útil?

Solución

Creo que el campo Solicitud necesita ser una expresión regular, no es una cadena Trate

tn = Net::Telnet::new("Host"=>"xxx.xxx.xxx.xxx", "Timeout"=>25,
"Output_log"=>"output_log.log", "Dump_log"=> "dump_log.log",
"Prompt"=> /C:.*>/)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top