34r2312 发表于 2015-1-15 08:15:30

使用expect批量自动备份交换机配置

通过使用expect工具以shell,来实现自动备份交换机配置的功能,从而提高工作效率。
软件:expect-5.44.1.15-4.el6.i686
目的:通过读取文件中的内容,自动登录网络设备,完成相应命令,最后将读取的配置信息,保存为文件。
以下是代码:
1、main.sh         #通过shell脚本来实现对文件内容的读取,并调用expect脚本来完成设备配置的读取与保存。

            #!/bin/bash

            for line in `cat /tmp/hosts.txt`                                    #逐行读取hosts文件内容
            do
                server=`echo $line |awk -F "|" '{print $1}'`
                login=`echo $line |awk -F"|" '{print $2}'`
                passwd=`echo $line |awk -F "|" '{print $3}'`
                enpasswd=`echo $line |awk -F "|" '{print $4}'`

               ./get_switch_conf.exp $server $login $passwd $enpasswd
            sleep 3
            done

2、get_switch_conf.exp      #通过expect脚本来完成自动登录设备、读取信息、保存信息。
            #!/usr/bin/expect -f

            if { $argc != 4 } {
                  send_user "用法: $argv0 <server> <login> <password> <enpassword>\n"
            exit
            }
   
         set timeout 1
         set TERM ANSI

         set SERVER
         set LOGIN
         set PASSWD
         set ENPASSWD

         spawn telnet
         expect "telnet> "
         send "open $SERVER\r"
         sleep 10
         expect "login:"
         send "$LOGIN\r"
         sleep 1
         expect "Password:"
         send "$PASSWD\r"
         sleep 1
         expect "*>"
         send "en\r"
         sleep 1
         expect "Password:"
         send "$ENPASSWD\r"
         sleep 1
         expect "*#"

         log_file /var/log/ -format "%Y-%m-%d"].$SERVER.log    #生成文件,格式                                                                                                                                                         按时间+IP
         send "show run\r"

          while (1) {
               sleep 1
                   expect {
                         " --More-- " { send " " }
                         "*#" { break }
                  }   
            }
         send "exit\r"
         interact
   
      3、host.txt         10.207.*.*|admin|password|enpassword         10.207.*.*|admin|password|enpassword
页: [1]
查看完整版本: 使用expect批量自动备份交换机配置