Как запустить несколько экземпляров из сценария tcl - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть скрипт 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"

Я выполняю вышеуказанные команды одновременно и непрерывно. До указанного количества.

1 Ответ

0 голосов
/ 25 октября 2018

Это код, который мы использовали для давным-давно.

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;
}

`

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...