• 用python的netmiko模块,可以很好的实现对交换机的管理

  • 下面以H3C交换机为例,采用tftp方式,对交换机每天凌晨3点进行备份

#!/usr/bin/env python
# encoding: utf-8


from netmiko import ConnectHandler

class switch(object):
    def __init__(self):
        self.switch_list = [
        '1.1.1.1',
        '2.2.2.2',
        ]



    def con_switch(self):
        for i in self.switch_list:
            huawei = {
            'device_type': 'huawei',
            'ip': i,
            'username': 'xxxx',
            'password': 'xxxx',
            'port' : 22,          
            'verbose': False,       # optional, defaults to False         
            }

            try:
                net_connect = ConnectHandler(**huawei)
            except expression as identifier:
                print i
                exit
            output = net_connect.send_command('tftp 3.3.3.3 put startup.cfg %s_startup.cfg' % i)
            print i + ':' + output




if __name__ == "__main__":
    run = switch()
    run.con_switch()
  • 其中1.1.1.1,2.2.2.2为交换机地址,3.3.3.3为tftp服务器地址。

  • tftp服务器搭建

  • 脚本写完,在linux机器上跑定时就可以了

yum install xinetd tftp-server tftp -y
mkdir /data/network


  •  修改配置文件

cat /etc/xinetd.d/tftp    

# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /data/network/ -c
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
  • 启动服务

systemctl start xinetd.service
systemctl enable tftp.service