Linux下expect批量更改交换机端口属性

一、for循环

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

将10.240.210.29交换机上的1到36端口划入vlan210

#!/usr/bin/expect -f
#set HOST [lindex $argv 0]
#set PORT [lindex $argv 0]
#set vlan [lindex $argv 1]
set vlan 210
for {set PORT 1 } {$PORT <= 36} {incr PORT} {
   spawn telnet 10.240.210.29
   sleep 1
   expect "Username:"
      send "admin\r"
   expect "Password:"
      send "E7qsZy0A02yu\r"
   sleep 1
      send "sys\r"
   sleep 1
      send "int GigabitEthernet 1/0/$PORT\r"
   sleep 1
      send "undo shutdown\r"
   sleep 1
      send "port access vlan $vlan\r"
   sleep 1
      send "loopback-detection enable vlan 1 to 4094\r"
   sleep 1
      send "stp edged-port\r"
   sleep 1
      send "quit\r"
   sleep 1
      send "quit\r"
   sleep 1
      send "quit\r"
   interact
}

二、while循环结合自定义文件

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

将10.240.210.7交换机上的43、44端口分别划入vlan210、vlan310

将端口与vlan号按一下格式写入port_vlan.list文件,第一列为端口号,第二列为vlan号。

[email protected] scripts$cat /var/lxh/scripts/port_vlan.list 
43 210
44 310
#!/usr/bin/expect -f
#set HOST [lindex $argv 0]
#set PORT [lindex $argv 0]
#set vlan [lindex $argv 1]
set file "/var/lxh/scripts/port_vlan.list"
set fd [open $file r]
while {[gets $fd line]>=0 } {
   set PORT [lindex $line 0]
   set vlan [lindex $line 1]
   spawn telnet 10.240.210.7
   sleep 1
   expect "Username:"
      send "admin\r"
   expect "Password:"
      send "E7qsZy0A02yu\r"
   sleep 1
      send "sys\r"
   sleep 1
      send "int GigabitEthernet 1/0/$PORT\r"
   sleep 1
      send "undo shutdown\r"
   sleep 1 
      send "port access vlan $vlan\r"
   sleep 1
      send "loopback-detection enable\r"
   sleep 1
      send "loopback-detection action semi-block\r"
   sleep 1
      send "stp edged-port enable\r"
   sleep 1
      send "quit\r"
   sleep 1
      send "quit\r"
   sleep 1
      send "quit\r"
   interact
}
close $fd
exit 0
时间: 2024-10-13 01:03:41

Linux下expect批量更改交换机端口属性的相关文章

ubuntu下,批量更改文件后缀

ubuntu下,批量更改文件后缀: eg:把当前目录下以tpl为后缀的文件全部rename为html a.tpl  b.tpl  c.tpl 执行命令:   rename 's/\.tpl/.html/' *.tpl a.html  b.html  c.html

Linux下如何批量生成IP地址段?

Linux下如何批量生成IP地址段? for num in `echo 192.168.2.{1..254}`;do echo $num >> ip_list;done 说明:定义一个名为num的变量,变量内容为echo 192.168.2.{1..254},然后输出到ip_list这个文件下面 生成文件的截图

linux下实现nginx安装实现端口区分,域名区分

nginx是一款高性能的http服务器/反向代理服务器及电子邮件代理服务器. 官方网站: http://nginx.org/ 1.http服务器.Nginx是一个http服务可以独立提供http服务.可以做网页静态服务器. 2.虚拟主机.可以实现在一台服务器虚拟出多个网站.例如个人网站使用的虚拟主机. 3.反向代理,负载均衡.当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理.并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机

linux下sed批量替换文件内容

在linux超级终端下编辑文档是件比较麻烦的事情,下面简单介绍一下如何在linux下批量替换文件内容 linuxsed 批量替换多个文件中的字符串 格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 例如:替换/home下所有文件中的xxx为ooo sed -i "s/xxx/ooo/g" `grep xxx -rl /home` 单个文件中的字符串替换 将文件1.txt内的文字“111”替换成“222” sed -i &qu

Linux下使用Rinetd来实现端口转发

Linux下端口转发一般都使用iptables来实现,使用iptables可以很容易将TCP和UDP端口从防火墙转发到内部主机上.但是如果需要将流量从专用地址转发到不在您当前网络上的机器上,可尝试另一个应用层端口转发程序Rinetd.Rinetd短小.高效,配置起来比iptables也简单很多. Rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具.Rinetd是单一过程的服务器,它处理任何数量的连接到在配置文件etc/rinetd中指定的地址/端口对

linux下简单好用的端口映射转发工具rinetd 转

linux下简单好用的工具rinetd,实现端口映射/转发/重定向 官网地址http://www.boutell.com/rinetd 软件下载 wget http://www.boutell.com/rinetd/http/rinetd.tar.gz 解压安装 tar zxvf rinetd.tar.gz make make install 编辑配置 vi /etc/rinetd.conf 0.0.0.0 8080 172.19.94.3 8080 0.0.0.0 2222 192.168.0

用了一天的时间,linux下expect实现ssh自动登录服务器记,鄙视下网上各种抄来抄去残段子

因为要对客户方的快30个项目进行特别有顺序的重启,所以不得不想办法写个脚本,网上看了不少段子.真是残缺的可以.没有一段是可以正常运行的.我来按顺序记录一下 脚本的本身 使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄.收藏.可是为什么要这么写却不知其然.本文用一个最短的例子说明脚本的原理. 脚本代码如下: ############################################## #!/usr/bin/expect set timeo

linux下简单好用的端口映射转发工具rinetd

linux下简单好用的工具rinetd,实现端口映射/转发/重定向官网地址http://www.boutell.com/rinetd 软件下载wget http://www.boutell.com/rinetd/http/rinetd.tar.gz 解压安装tar zxvf rinetd.tar.gzmakemake install[[email protected] rinetd]# make installinstall -m 700 rinetd /usr/sbininstall -m 6

linux使用expect批量部署应用

前言:上一篇讲了cobbler,这篇来讲下expect.以前分发文件的时候都是用for循环依次去读ip.当然前提你还得先把ssh通道打通.虽然说expect不用提前做什么准备工作,只需要写两个脚本即可.但是个人认为没有ssh安全.因为使用expect的时候你得先把你的账户写到一个文件里面.且都是明文存储.至于能否加密什么的有待研究.而ssh大家都知道,互换秘钥相对来说安全一点.好了,不多说.来看看它具体应用吧. #1 安装 [[email protected] ~]# yum install e