我有一个tcl脚本。因为我创建了3个到服务器telnet会话。但是,我想同时连续地对所有telnet运行一组命令。实现它的最好方法是什么?
For Ex: For 1st Telent session : i run "show ospf"
For 2nd Telent session : i run "show interfaces"
For 3rd Telent session : i run "show eigrp"我同时且连续地执行上述命令。直到指定的计数。
发布于 2018-10-25 11:37:25
这是我们很久以前用过的一些代码。
set commands [ list ]
lappend commands "no ip prefix-list DDOS permit $c_targetip/24"
lappend commands "ip prefix-list DDOS seq $data permit $c_targetip/24"
lappend commands "router bgp"
lappend commands "network $c_targetip/24"
lappend commands "exit"
lappend allconnections "br2.sjc1"
lappend allconnections "br3.lax3"
lappend allconnections "br6.lax10"
lappend allconnections "br7.lax10"
# spawn all connections
foreach conn $allconnections {
spawn telnet $conn
lappend spawn_id_list $spawn_id
}
# run expect script for all connections individually
foreach id $spawn_id_list {
# this is important - for unknown (to me) reasons
set spawn_id $id
set timeout 30
expect_after {
timeout { catch { close }; wait; return 2 }
eof { catch { close }; wait; return 1 }
}
expect {
"Username: " {
send "$user\r"
exp_continue
}
"Password: " {
send "$password\r"
exp_continue
}
"#" {
send "configure terminal\r"
}
}
expect "(config)#"
foreach command $commands {
send "$command\r"
expect ")#"
}
send "exit\r"
expect "#"
send "exit\r"
expect ">"
send "exit\r"
expect "closed"
exp_close
exp_wait
}
return 0;
}`
https://stackoverflow.com/questions/52361205
复制相似问题