天天看點

Linux下expect批量更改交換機端口屬性

一、for循環

功能:将端口劃入同一vlan。

将10.240.210.29交換機上的1到36端口劃入vlan210

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

<code>#!/usr/bin/expect -f</code>

<code>#set HOST [lindex $argv 0]</code>

<code>#set PORT [lindex $argv 0]</code>

<code>#set vlan [lindex $argv 1]</code>

<code>set</code> <code>vlan 210</code>

<code>for</code> <code>{</code><code>set</code> <code>PORT 1 } {$PORT &lt;= 36} {incr PORT} {</code>

<code>   </code><code>spawn telnet 10.240.210.29</code>

<code>   </code><code>sleep</code> <code>1</code>

<code>   </code><code>expect </code><code>"Username:"</code>

<code>      </code><code>send </code><code>"admin\r"</code>

<code>   </code><code>expect </code><code>"Password:"</code>

<code>      </code><code>send </code><code>"E7qsZy0A02yu\r"</code>

<code>      </code><code>send </code><code>"sys\r"</code>

<code>      </code><code>send </code><code>"int GigabitEthernet 1/0/$PORT\r"</code>

<code>      </code><code>send </code><code>"undo shutdown\r"</code>

<code>      </code><code>send </code><code>"port access vlan $vlan\r"</code>

<code>      </code><code>send </code><code>"loopback-detection enable vlan 1 to 4094\r"</code>

<code>      </code><code>send </code><code>"stp edged-port\r"</code>

<code>      </code><code>send </code><code>"quit\r"</code>

<code>   </code><code>interact</code>

<code>}</code>

二、while循環結合自定義檔案

功能:将端口劃入不同的vlan

将10.240.210.7交換機上的43、44端口分别劃入vlan210、vlan310

将端口與vlan号按一下格式寫入port_vlan.list檔案,第一列為端口号,第二列為vlan号。

<code>root@extmail scripts$cat /var/lxh/scripts/port_vlan.list </code>

<code>43 210</code>

<code>44 310</code>

33

34

35

36

37

38

39

<code>set</code> <code>file</code> <code>"/var/lxh/scripts/port_vlan.list"</code>

<code>set</code> <code>fd [</code><code>open</code> <code>$</code><code>file</code> <code>r]</code>

<code>while</code> <code>{[gets $fd line]&gt;=0 } {</code>

<code>   </code><code>set</code> <code>PORT [lindex $line 0]</code>

<code>   </code><code>set</code> <code>vlan [lindex $line 1]</code>

<code>   </code><code>spawn telnet 10.240.210.7</code>

<code>   </code><code>sleep</code> <code>1 </code>

<code>      </code><code>send </code><code>"loopback-detection enable\r"</code>

<code>      </code><code>send </code><code>"loopback-detection action semi-block\r"</code>

<code>      </code><code>send </code><code>"stp edged-port enable\r"</code>

<code>close $fd</code>

<code>exit</code> <code>0</code>

<code></code>

本文轉自 xoyabc 51CTO部落格,原文連結:http://blog.51cto.com/xoyabc/1666333,如需轉載請自行聯系原作者

繼續閱讀