Hi Dominik. Have you finally found the solution? I'm working on similar task to run commands on cisco routers. Could you share you code for this?
On Thursday, May 18, 2017 at 1:23:57 PM UTC+3, Dominik Link wrote: > > Hi > > > I would like to run multiple ssh commands within the same 'context' as if > it would be using putty when connecting to a cisco device. > > Here are two examples of what i would need to send to the device: > > > > 1) Setting the terminal width to 0 in order to remove the line breaks. > This makes parsing the output of the following command easier. > > Switch#terminal width 0Switch#show vlan brief > > VLAN Name Status Ports > ---- -------------------------------- --------- > ------------------------------- > 1 default active Et0/0, Et0/1, Et0/2, Et0/3 > ... > ... > > > > 2) Configure an IP address of an interface. When connecting with ssh, I > start in the 'enable' mode due to the user privileges. I need to get in the > config mode first. Afterwards, I need to get in the interface config mode > and can finally set the address. > > Router#configure terminal > Enter configuration commands, one per line. End with > CNTL/Z.Router(config)#interface e3/2Router(config-if)#ip address 172.16.1.1 > 255.255.255.0 > > > > > I can run a single command easily with session.Run() but as I described, I > need to be able to run multiple commands and parse their output within a > single 'context'. > > *How could this behavior be achieved with crypto/ssh?* When I try to > create a new session after the first session.run(), it always returns with > an error: "EOF". > > I just wanted to try whether the context will stay the same but it won't > even come that far. > > > //create session 1 and go into config mode > session, err = client.NewSession()if err != nil { > panic("Failed to create session: " + err.Error())}if err := > session.Run("conf t"); err != nil { > panic("Failed to run: " + err.Error())} > session.Close() > //create session 2 and go into if mode > session, err = client.NewSession()if err != nil { > //Error will be EOF > panic("Failed to create session: " + err.Error())}if err := > session.Run("int e3/2"); err != nil { > panic("Failed to run: " + err.Error())} > session.Close() > > > > Thanks, > Dominik > > > I also posted this question in stackoverflow > <https://stackoverflow.com/questions/44045049/golang-multiple-commands-in-one-ssh-session> > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.