天天看点

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,如需转载请自行联系原作者

继续阅读