Telnet - attempting to initiate a telnet session within an established telnet session

Discussion in 'Ruby' started by Carcarius, Dec 6, 2007.

  1. Carcarius

    Carcarius Guest

    My company builds a product that has a dual slot architecture for
    redundancy. Each slot has 2 significant Ethernet interfaces; one for
    network connectivity and one for connectivity between slots. Only one
    of the slots is accessible from the network at a time (the other is
    meant to be a backup). The two slots communicate via a common
    Ethernet backplane and each slot has a different IP address (10.0.0.9
    and 10.0.0.10).

    I am trying to build a script with Ruby that allows me to first telnet
    into the active slot using it's network address (easy - mission
    accomplished) but then to also telnet into the backup slot over the
    Ethernet backplane within the same telnet session. I want to issue
    commands in order to gather data such as uptime, disk usage, etc...

    I am getting hung up on the password prompt when trying to connect to
    the second slot. I can't seem to send the password info with carriage
    return so I can gain access to the second slot and issue additional
    commands.

    The code I have written is in the testing phase and is clearly not
    perfect.

    Here is my code:

    require 'net/telnet'

    top_node = ARGV[0]

    tn = Net::Telnet::new( "Host" => top_node,
    "Timeout" => 10,
    "Prompt" => /[$%#>] \z/n)
    tn.login("root", "lab") { |c| print c }
    tn.cmd("date") { |c| print c }
    print ARGV[0]
    print " - "
    tn.cmd("./uptime") { |c| print c }
    test = tn.cmd("ifconfig eth0 | ifconfig eth0 | awk '/inet addr:/
    {print $2 }'")

    if test.include?("addr:10.0.0.9")
    tnbackup = "10.0.0.10"
    else
    tnbackup = "10.0.0.9"
    end

    print "\n\nTelnetting to Backup HFM " + "(" + tnbackup + ")\n\n"

    tn.cmd("telnet " + tnbackup + " -l root") { |c| print c }

    tn.waitfor(/Password:\s*/im) { |c| print c }
    tn.puts("lab")
    tn.cmd("ifconfig eth0 | ifconfig eth0 | awk '/inet addr:/ {print
    $2 }'") { |c| print c }
    tn.cmd("exit") { |c| print c }
    tn.close

    Has anyone successfully telnet into other devices from within an
    established telnet session? Let me know if I am not clear with my
    problem and if I need to clarify it more.

    Any help is greatly appreciated.

    Thanks,

    Heath
     
    Carcarius, Dec 6, 2007
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.

Share This Page