多进程--利用堡垒机备份网络设备配置

本文探讨了在使用Threading实现并发备份网络设备配置时遇到的问题,由于con.expect()在多线程环境下可能导致线程安全问题,导致匹配失败和超时。作者转向尝试multiprocessing模块,但对Manager().Queue()的使用未能成功,遇到了数据重复和同步的挑战。
摘要由CSDN通过智能技术生成

想利用Threading实现并发,但是失败了。怀疑在多个线程下 con.expect(  ) 为同一id,需要额外对con.expect 或 send 实现线程安全,因为总是报timeout,匹配不到字串。

为了防止多进程在读取设备列表时重复复制相同数据,又舍近求远用multiprocessing.Manager()折腾很久失败,没明白Manager().Queue()为什么会不成功。


#!/usr/bin/env python

#coding=utf-8


"""
Collecting configuration with a jumpserver. 
Yong Peng 2017-09-05


"""


import time
import pexpect
import os
import sys
import multiprocessing
#import getpass


__version__ = '3.0'


#time = time.strftime('%y.%m.%d-%H:%M:%S')
Dir_name = time.strftime('%Y%m%d')


if not os.path.lexists('/config_bak/{}'.format(Dir_name)):
    os.system('mkdir /config_bak/{}'.format(Dir_name))


#登录堡垒机的帐号
#Password = getpass.getpass('Pls input password: ')
Username = 'usernameXX'
Pwd = 'passXX'


#登录设备的帐号
Login_user = 'usernameYY'
Login_pwd = 'passYY'
Enable_pwd = 'enableYY'




command_set1 = ['show run\n', 'show vlan\n', 'show interface status\n']
command_set2 = ['show run\n', 'show ap-config summ\n', 'show ap-config run\n']
command_set3 = ['dis curr \n', 'dis interface brief\n&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值