首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从tcl脚本运行多个实例

如何从tcl脚本运行多个实例
EN

Stack Overflow用户
提问于 2018-09-17 13:26:34
回答 1查看 219关注 0票数 0

我有一个tcl脚本。因为我创建了3个到服务器telnet会话。但是,我想同时连续地对所有telnet运行一组命令。实现它的最好方法是什么?

代码语言:javascript
复制
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"

我同时且连续地执行上述命令。直到指定的计数。

EN

回答 1

Stack Overflow用户

发布于 2018-10-25 11:37:25

这是我们很久以前用过的一些代码。

代码语言:javascript
复制
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;
}

`

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52361205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档