首页 > 编程语言 >Python实现批量网络设备备份

Python实现批量网络设备备份

时间:2022-11-01 00:34:25浏览次数:44  
标签:hostname Python 备份 cmd send sleep time 网络设备

import paramiko
import datetime 
import time
f=open('./hostnames.txt','r')  #准备主机文件,一台主机占一行
hostnames=f.readlines()

for hostname in hostnames:
    hostname=hostname.strip()
    ssh_client=paramiko.SSHClient()
    ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh_client.connect(hostname=hostname,username='python',password='123456')  #连接并登录网络设备,此处用户名密码根据自己情况
    print('Sucessfully conneted to ',hostname)

    cmd=ssh_client.invoke_shell()
    cmd.send('dis curr | include sysname\n')   #查看网络设备主机名
    time.sleep(2)

    
    result=cmd.recv(66666)  #设置接收字节的窗口大小
    result=result.decode('utf-8')
    items=result.splitlines()
    for item in items:
        item=item.strip()
        if item.startswith('sysname'):  #提取网络设备主机名
            device_name=item.split(' ')[-1]
    #print(device_name)
    now_time=datetime.datetime.now()
    now_time=now_time.strftime('%Y-%m-%d-%H:%M:%S')  #获取当前时间
    file_name=device_name+'-'+now_time+'-vrpcfg.zip' #拼接备份文件名(网络设备主机名+时间+后缀名)



   
    cmd.send('ftp 192.168.99.211\n')
    time.sleep(1)
    cmd.send('ftpuser\n')
    time.sleep(1)
    cmd.send('huawei123456\n')  
    time.sleep(1)
    cmd.send('put vrpcfg.zip '+file_name+'\n')  #登录FTP服务器,并将网络设备的文件传送到FTP服务器
    time.sleep(3)
  
    print('files have uploaded to ftp server,And the connetion will be closed')    
    
    result2=cmd.recv(66666)
    result2.decode('utf-8')
    print(result2,'\n')
    
    time.sleep(2)
    ssh_client.close()
    

标签:hostname,Python,备份,cmd,send,sleep,time,网络设备
From: https://www.cnblogs.com/tang-learning/p/16846413.html

相关文章

  • python函数
    什么是函数?函数相当于具备某一功能的工具函数使用原则:先定义,后调用为什么要使用函数?组织结构不清晰,可读性差代码冗余可维护性,扩展性差函数使用函数定义#......
  • Python 基础
    目录基础语法变量标识符命名规范注释单行注释多行注释import引入模块的方法运算法算术运算符成员运算符条件控制if语句matchcase语句基础语法变量标识符命名规范标......
  • Python实现批量登录网络设备
    importparamikoimportdatetimeimporttimef=open('./hostnames.txt','r')#准备好主机文件,一台主机占一行hostnames=f.readlines()#hostnames=['1.1.1.1','2.2.......
  • npm install报奇怪的python错误
    一、问题描述从git上面拉取项目,准备在本地运行,在使用 npminstall 安装依赖的时候,出现了奇怪的python错误。但是类似的项目能够正常的安装依赖并运行二、解决方法如......
  • Python开发 之 两种爬虫的方式 正则表达式、XPath
    文章目录​​1、简介​​​​2、简单爬取基本信息——效果图​​​​3、先将一下利用正则的方式​​​​3.1简单理解​​​​3.2源码​​​​4、XPath​​​​4.1简单介......
  • 学习python-Day82
    今日学习内容一、vue项目目录介绍myfirstvue 项目名字 -node_modules 文件夹,内部有很多当前依赖的模块,可以删除,但是想恢复就需要敲:npminstall-publice 文......
  • [python] 合并文件 终端命令行 cmd版
    importgetoptimportosimportsysdefshow_help():print("-h查看帮助")print("-s<path>文件路径1例:E:\\folk.bin")......
  • [python] bin转dfu 脚本 RSA2048 签名 解密 公钥 私钥
    /lib/importhashlibimportosimportsysimporttimefromdatetimeimportdatetimeimportrsaclassmy_sign():pubkey=""privkey=""def__init__(self,pa......
  • [python][上位机][tool] 单片机多功能上位机 参数设置 DFU升级 曲线图显示
    一、上位机界面图二、DFU生成工具界面图三、使用说明DFU升级功能必须使用配套的DFU生成工具。曲线图协议:GH^DATA=<线编号><数据>\r\n......
  • [keil][python][单片机] keil 集成bin文件生成 boot+app合并 dfu生成
    一、首先配置keil执行工具.\file_handling.bat@L!L$K输出文件名根据自身定义参数名注释@L输出文件名(上图所示位置)!L输出文件名.axf$Kkeil路径二、编写bat脚本(此处......