iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python3备份juniper交换机
  • 866
分享到

python3备份juniper交换机

交换机备份juniper 2023-01-31 08:01:47 866人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

#!/usr/bin/env python3# -*- coding: utf-8 -*-"""  Author:  Linxy -- <592901071@qq.com>  Purpose: Juniper备份脚本  Crea

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
  Author:  Linxy -- <592901071@qq.com>
  Purpose: Juniper备份脚本
  Created: 2017-6-23
"""

import datetime
import sys
import os
import telnetlib
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, fORMataddr
import smtplib
su=[]
fa=[]


#获取年月日的str数据
def getymd (ymd):
 d=datetime.datetime.now()
 if ymd=='y':
  return str(d.year)
 elif ymd=='m':
  return str(d.month)
 elif ymd=='d':
  return str(d.day)

#p1='./switch/'+getymd('y')+'/'+getymd('m')+'/'+getymd('d')
l1=[getymd('y'),getymd('m'),getymd('d')]
#print(l1)
p1='./switch'
if os.path.isdir(p1):
  pass
else: 
  os.mkdir(p1)
for i in l1:
 p1=p1+'/'+i
 if os.path.isdir(p1):
  pass
 else: 
  os.mkdir(p1)


filename1='./sw.txt'#交换机IP地址列表存放位置 注意要把最后一个IP以后的空格和回车全部删除
filename2='./ssg.txt' 
def fc_srx(p2): #文件处理部分的函数
 if os.path.getsize(p2)==0:
  
  '''
  密码不对时候 telnet的执行是成功的只是read_all的时候没有结尾的标记所以无法读出返回值
  但仍然会建立空txt文档所以需要在此再进行一次判断并把需要的值写入fa[]中
  '''
  fa.append(host+'\n')
  print(host+" is failed")
 else:
  with open(p2,'r') as f:
   lines=f.readlines()
  with open(p2,'w') as w:
   for I in lines:
    I=I.replace('---(more)---','')
    I=I.replace('                                        ','')
    I=I.replace('\r','')
    I=I.replace('\n','')
    if I=='':
     pass
    else :
     w.write(I+'\r\n') 
     
     
     
     
def fc_ssg(p2):
 if os.path.getsize(p2)==0:
  #print(host+' is failed')
  '''
  密码不对时候 telnet的执行是成功的只是read_all的时候没有结尾的标记所以无法读出返回值
  但仍然会建立空txt文档所以需要在此再进行一次判断并把需要的值写入fa[]中
  '''
  fa.append(host+'\n')
  print(host+" is failed")
 else:
  with open(p2,'r') as f:
   lines=f.readlines()
  with open(p2,'w') as w:
   for I in lines:
    I=I.replace('--- more ---','')
    I=I.replace(' ','')
    I=I.replace('\r','')
    I=I.replace('\n','')
    if I=='':
     pass
    else :
     w.write(I+'\r\n') 
 
def juniper_bak (host):#备份juniper函数
 user='这里是交换机帐号'
 passWord='这里是交换机密码'
 print ('Backing up:'+host)
 tn=telnetlib.Telnet(host.encode('utf-8'),port=23,timeout=4)
 tn.read_until(b"login:")
 tn.write(user.encode('utf-8')+'\n'.encode('utf-8'))
 tn.read_until(b"Password:")
 tn.write(password.encode('utf-8')+'\n'.encode('utf-8'))
 tn.read_until(b'> ')
 tn.write(b'show configuration | display set '+'\n'.encode('utf-8'))
 for i in range(300) :
  tn.write(b' ')
 tn.write(b'q\n')
 tn.write(b'q\n')

 p2=p1+'/'+host+'/'+host+'.txt'
 if os.path.isdir(p1+'/'+host):
  pass
 else: 
  os.mkdir(p1+'/'+host)


 with open(p2,'w') as f:
  f.write(tn.read_all().decode())
 tn.close()
 fc_srx(p2)
def ssg_bak (host):#备份ssg函数
 user='这里是ssg设备帐号'
 password='这里是ssg设备密码'
 print ('Backing up:'+host)
 tn=telnetlib.Telnet(host.encode('utf-8'),port=23,timeout=4)
 tn.read_until(b"login:")
 tn.write(user.encode('utf-8')+'\n'.encode('utf-8'))
 tn.read_until(b"password:")
 tn.write(password.encode('utf-8')+'\n'.encode('utf-8'))
 tn.read_until(b'>')
 tn.write(b'get config'+'\n'.encode('utf-8'))
 for i in range(50000) :#看具体设备有些设备输入200个空格即可获取到全部回显
  tn.write(b' ')
 tn.write(b'exit\n')
 p2=p1+'/'+host+'/'+host+'.txt'
 if os.path.isdir(p1+'/'+host):
  pass
 else: 
  os.mkdir(p1+'/'+host)
 
 with open(p2,'w') as f:
  f.write(tn.read_all().decode(encoding='gbk'))
 tn.close()
 fc_ssg(p2)

def sendmail_cxr(tx):#发送邮件函数
 def _format_addr(s): #注意此函数实际传入的S格式为‘字符串 <邮箱地址>’
  name, addr = parseaddr(s)
  return formataddr((Header(name, 'utf-8').encode(), addr)) 
 from_addr = '这里是发送邮件的邮箱地址'
 password = '这里是邮箱密码'
 to_addr = '接收邮件的地址1'
 to_addr2='接收邮件的地址2'
 smtp_server = 'SMT服务的域名要写这里'
 
 msg = MIMEText(tx, 'plain', 'utf-8')

 msg['From'] = _format_addr('邮件相关的格式不要细究 <%s>' % from_addr)
 msg['To'] = _format_addr('邮件相关的格式不要细究 <%s>'% to_addr)
 msg['Subject'] = Header('今日备份情况', 'utf-8').encode()  #邮件主题

 server = smtplib.SMTP(smtp_server, 25)
 #server.set_debuglevel(1)
 server.login(from_addr, password)
 server.sendmail(from_addr, [to_addr,to_addr2], msg.as_string())
 server.quit() 
 

if __name__=='__main__':
 with open (filename2,'r')as fo:
  for line in fo.readlines():
   if line.split(' ')[0]!='':
    line=line.replace('\n','')
    host=line.split(' ')[0]
    try:
     ssg_bak(host)
     su.append(host+'\n')
    except:
     print(host+" is failed")
     fa.append(host+'\n')



 with open (filename1,'r')as fo:
  for line in fo.readlines():
   if line.split(' ')[0]!='':
    line=line.replace('\n','')
    host=line.split(' ')[0]
    try:
     juniper_bak(host)
     su.append(host+'\n')
    except:
     print(host+" is failed")
     fa.append(host+'\n')
  '''
  密码不对时候 telnet的执行是成功的只是read_all的时候没有结尾的标记所以无法读出返回值
  但仍然会建立空txt文档所以需要在文本处理环节再进行一次判断并把需要的值写入fa[]中
  '''
 #print(su)
 #print(fa)
 tx=''
 if len(su)!=0:
  txsu='备份成功\n'+''.join(su)
  csu=0
  for i in su:
   csu=csu+1
  tx=tx+txsu+'总计成功'+str(csu)+'个'+'\n\n'
 if len(fa)!=0:
  cfa=0
  for i in fa:
   cfa=cfa+1
  txfa='备份失败\n'+''.join(fa)
  tx=tx+txfa+'总计失败'+str(cfa)+'个'+'\n\n'
 sendmail_cxr(tx)
 
 
 
 
 
 
 


--结束END--

本文标题: python3备份juniper交换机

本文链接: https://www.lsjlt.com/news/192777.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python3备份juniper交换机
    #!/usr/bin/env python3# -*- coding: utf-8 -*-"""  Author:  Linxy -- <592901071@qq.com>  Purpose: Juniper备份脚本  Crea...
    99+
    2023-01-31
    交换机 备份 juniper
  • python3以ftp方式备份华为交换机
    客户这里,有很多华为S系列交换机,基本时都是2700,5700系列。数量很多,原来都是手工登陆备份,费时,费力。后来想用python脚本备份交换机配置文件。思路:1、华为交换机的配置文件都是以vrpcfg.zip文件方式保存在交换机内存中2...
    99+
    2023-01-31
    华为 交换机 备份
  • Python3备份
    Python3生产者/消费者模式 import threading import queue,time,random class Goods:#产品类 def __init__(self): ...
    99+
    2023-01-31
    备份
  • Python3 备份 MySQL/Mar
    【准备工作】搭建 FTP 服务器:Windows Server 2008 R2 搭建FTP服务如果本机访问报 530 错误:1、检查用户名、密码;2、检查 ftp 目录的用户权限。如果远程主机无法访问,检查防火墙。关于 ftp 的端口:控制...
    99+
    2023-01-31
    备份 Mar MySQL
  • Exalogic Ethernet交换机配置的备份与还原方法是什么
    本篇内容主要讲解“Exalogic Ethernet交换机配置的备份与还原方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Exalogic Ethern...
    99+
    2024-04-02
  • python多线程自动备份华为H3C交换
    之前试过用expect结合bash脚本备份交换机LOG,但由于是串行执行,设备很多的情况下耗时太长,而且经常出错导致备份不完整。于是在网上找python多线程处理的相关文章,但基本都是基于tftp备份当时运行的配置文件,不能根据自定义巡检命...
    99+
    2023-01-31
    华为 多线程 自动备份
  • python3转换ITF25(交叉25
    继上篇的python3转换code128条形码之后,发现,由于code128密度太高,依然无法清晰打印。迫于无奈,只能选择这个密度低的条形码,就是:交叉25码(Interleaved 2of5)。 这字库不好找啊。推荐:地址1 地址2 ...
    99+
    2023-01-31
  • python跟H3C 5024E交换机交
    # coding: utf8import re, sysimport pexpect# enable/disable debug modeDEBUG = Falsedef telnet_login(ip, pwd, cmd, ps):   ...
    99+
    2023-01-31
    交换机 python H3C
  • h3c交换机gvrp
    一、GARP简介: GARP提供了一种机制,用于协助同一个局域网内的交换成员之间分发、传播和注册某种信息(如VLAN、组播地址等)。GARP本身不作为一个实体存在于设备中,遵循GARP协议的应用实体称为GARP应用,GVRP就是GARP的一...
    99+
    2023-01-31
    交换机 h3c gvrp
  • 汇聚交换机和核心交换机有哪些区别
    这篇文章主要介绍了汇聚交换机和核心交换机有哪些区别的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇汇聚交换机和核心交换机有哪些区别文章都会有所收获,下面我们一起来看看吧。区别:1、核心交换机是部署于核心层的交换机...
    99+
    2023-06-29
  • openstack虚拟机备份
    在OpenStack中,可以使用以下两种方法备份虚拟机:1. 使用镜像快照:OpenStack提供了创建虚拟机镜像快照的功能。镜像快...
    99+
    2023-10-11
    openstack
  • H3C交换机做DHCP
    今天给一个H3C S5500-28C-EI做DHCP,由于以前做华三设备很少,所以找了很多配置资料,终于在网上找到了一篇,挺实用,分享一下   #给Vlan定义地址并配置其工作在服务器模式 interface Vlan-inter...
    99+
    2023-01-31
    交换机 H3C DHCP
  • 管理H3C交换机
    一、配置交换机的vlan管理ip地址。 1,进入系统视图 <H3C> system-view 2,创建VLAN 1,并指定VLAN 1为交换机的管理VLAN [H3C] vlan 1&...
    99+
    2023-01-31
    交换机 H3C
  • 交换机升级 h3c_520
      一要求 :给公司交换机升级版本,使其更能更强大   二 实施前准备 若用笔记本 需要usb 转9针串口 或者需要 一台有com口台式机 服务器(vm)一台 开通ftp 两、三根网线 Xp 装有crt 远程连接工具 三 实施 当前用的是笔...
    99+
    2023-01-31
    交换机
  • “设备+云管”双管齐下 H3C WAS6100交换机评测
    俗话说“好马配好鞍,好船配好帆”。搭配是门技术活,对于企业组网来讲亦是如此。现如今,网络已成为企业业务的主要动脉,网速的快慢直接影响公司的办公效率,网络安全问题也成为公司最大的威胁。受制于成本和规模,中小企业组网成了一个老大难的问题。“好网...
    99+
    2023-06-03
  • CCIE试验备考之交换security(
    第三部分  访问控制1.RACL针对路由接口的控制通信流量的安全策略。交换机在硬件中支持包含允许和拒绝操作的RACL。RACL的配置方式与常规的ACL相同。在交换机中,用户可以在任何路由接口中应用RACL,其中包括如下接口:*SVI(交换虚...
    99+
    2023-01-31
    CCIE security
  • H3C UniStor CB备份一体机:备份其实很简单
      【IT168 导购】数据备份对于企业IT应用的重要性不言而喻,无论是出于企业自身业务平稳运行的需求,还是各地区法规对数据安全的要求,将业务数据进行备份都是必要之举。随着大数据时代的到来,数据产生的速度越来越快,数据存储的量级越来越高,这...
    99+
    2023-06-04
  • 交换机生成树STP
    生成树协议(spanning-tree-protocol,stp):在具有物理环路的交换机网络上生成没有回路的逻辑网络的方法,生成树协议使用生成树算法,在一个具有冗余路径的容错网络中计算出一个无环路的路径,使一部分端口处于转发状态,另一部分...
    99+
    2023-09-15
    网络 php 开发语言
  • 3层交换机做DPCP
    实验名称:3层交换机开启DHCP功能实验目的:实现PC0-PC3均可以通过3层交换机DHCP功能获取IP实现环境: 终端设备:PC0:192.168.10.0/24 vlan10PC1:192.168.20.0/24 vlan20PC2...
    99+
    2023-01-31
    交换机 DPCP
  • h3c交换机配置(下)
    六、以太网安全技术   (一) 以太网ACL控制 1、ACL匹配原则 (1)支持两种匹配顺序 配置顺序:根据配置规则的先后顺序进行规则匹配自动排序:根据“深度优先”的顺序进行规则匹配。即越详细的越最先匹配。 (2)基本ACL的“深度优先”顺...
    99+
    2023-01-31
    交换机 h3c
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作