python网络运维书籍_菜鸟级python自学者的python网络运维尝试
关于换批量cisco nexus的主机名,关键字段如下(python 2.7):
first_character = output.rfind("\n") + 2
last_character = output.rfind("#")
hostname = output[first_character:last_character]
new_hostname = hostname.replace("{关键字A}","{关键字B}")
使用rfind函数找出hostname,然后进行关键字的替换。
完整代码(我是个菜鸟,请忽略代码的优雅,目前功能至上,如下代码跑过,ctrl + C出来的):
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import paramiko
import time
import os
import getpass
import re
import socket
import sys
# import datetime
#切换到本地E盘E盘python_test文件夹
#os.chdir(r'G:\Python\ssh_maintence_fetch')
#输入账号和密码
username = raw_input('username: ')
password = getpass.getpass('Password: ')
#读取IP_address,以及command中的信息
IP_address_file = open('IP_address.txt','r')
try_result = open('unreachable.txt','a+')
#result = []
# ssh the ip in the IP_address command
for line in IP_address_file.readlines():
try:
ip = line.strip()
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(hostname=ip, username=username, password=password)
time.sleep(1)
print ("Sucessfully login to ", ip)
command = ssh_client.invoke_shell()
file_result = open(ip + '_commandfeedback.txt', 'a+')
time.sleep(0.5)
output = str(command.recv(65535))
#取出output中的hostname字段,并替换{关键字}为{关键字},注意要前面还有回车字符,所以要+2
first_character = output.rfind("\n") + 2
last_character = output.rfind("#")
hostname = output[first_character:last_character]
print hostname
new_hostname = hostname.replace("{关键字A}","{关键字B}")
print new_hostname
# print 'hostname' + ' ' + new_hostname
#将新hostname刷进设备,并回显,并记录到commandfeedback中
command.send('conf ter' + '\n')
time.sleep(0.5)
command.send('hostname '+ new_hostname + '\n')
time.sleep(0.5)
command.send('copy run start' + '\n')
output = str(command.recv(65535))
print output
file_result.seek(0,2)
file_result.write(output)
while re.search(r'complete',output) == None:
time.sleep(3)
output = str(command.recv(65535))
print output
file_result.seek(0,2)
file_result.write(output)
file_result.close()
ssh_client.close()
file_result2 = open('commadresult.txt','a+')
file_result2.seek(0,2)
file_result2.write(ip+' command upload succeeded!\n')
except socket.error:
try_result.write(ip+ '\n')
try_result.close()
IP_address_file.close()
file_result2.close()
关于为什么要在rfind的时候+2,因为在执行command.send('hostname '+ new_hostname + '\n')的时候,newhostname前总会换行,使用print list(new_hostname)可以发现前面多了一个\r,所以直接+2了,当然我们也可以在rfind的时候查找‘\r’确认第一个字符的位置。
python网络运维书籍_菜鸟级python自学者的python网络运维尝试相关推荐
- python必读5本书籍_免费下载!5本从Python入手机器学习的必备电子书!(附链接)...
大数据文摘授权转载自数据派THU 作者:Richard Gall 编译:车前子.丁楠雅 今天,机器学习已成为软件工程所有领域中最重要的发展趋势之一.这门技术不再局限于研究者和数据分析者,从网络安全到网 ...
- python用于数据分析的书籍_做数据分析不得不看的书有哪些?
书不在多,而在于精.我分析了知乎上推荐的数据分析类书籍的回答,最终总结了以下内容,形成了这篇文章. 数据分析类的书有很多,可以按数据分析的流程分类,每个流程应该看哪些书籍. 也可以按照通识类和工具类进 ...
- python程序员专用壁纸_神级python程序员分享的让小白30分钟快速上手的一张神图,赶快收藏!...
原标题:神级python程序员分享的让小白30分钟快速上手的一张神图,赶快收藏! 现在很多人学编程都把Python作为入门语言,其实这是个很不错的选择,那么你知道新手如何学Python吗?小编给大家分 ...
- python 如何判断一个函数执行完成_菜鸟来也!50行Python代码一键整理桌面
我的老同学小马忙于找工作,整天被各种照片信息,和面试笔试资料搞的焦头烂额,很多文件来不及处理,全部都堆放在了一起,久而久之,就造成了桌面非常的混乱,如下图所示: 乱糟糟的桌面,让心情也会潜移默化的变得 ...
- python的设计理念和应用_菜鸟爱Python第1期:Python发展史?对Python最深刻的解读...
这是胜天半子的第1篇原创. 前言 也许你不是一名程序员,也许你甚至都不是做IT行业的,但你的定位只要不是被时代所抛弃的老年人,你,多多少少应该听过"Python"一词,多多少少看到 ...
- python难度大的题_早看少被坑!Python 最难的问题
超过十年以上,没有比解释器全局锁(GIL)让Python新手和专家更有挫折感或者更有好奇心. 未解决的问题 随处都是问题.难度大.耗时多肯定是其中一个问题.仅仅是尝试解决这个问题就会让人惊讶.之前是整 ...
- python构造方法与java区别_一张图秒懂Java和Python的区别,你知道吗?
对于程序员的语言千千万JAVA\C\C++\PHP\Python不同的程序员使用着不同的语言,做着功能相似需求却不同的产品. 但是最近Python在人工智能的推动下突然出现在人们的面前,其实和Java ...
- python 数组合并排重_并排深度学习:Julia vs Python
python 数组合并排重 Julia could possibly be the biggest threat to Python. For a variety of applications, J ...
- 编程入门python java和c语言_学习编程适不适合从Python入门?哪种语言更适合入门?...
本文对比了C语言和Python语言,分析它们作为编程入门语言各自的利弊,并给出了我推荐的编程学习道路. 我本身已经入门了Python脚本语言,在进阶C语言和JAVA语言后,Python重学就轻松很多, ...
最新文章
- 这一次,你能彻底搞懂 Flink!
- Ansible5:Ad-hoc常用模块
- linux做单臂路由实现trunk 使vlan之间通信
- leetcode算法题--Count and Say
- 虚荣的程序员--恶心,真的想吐
- java hashmap实例,关于java中的HashMap的实例操作
- Yarn 资源调度框架
- jstl core and jstl fn
- Gsview裁剪EPS文件
- vmware下安装rhel5
- 每天CookBook之JavaScript-073
- Visual studio 番茄助手过期解决方案
- 杨振宁100岁了,诺奖都不算他的人生巅峰
- CCF NOI 2022获奖名单
- python编程快速上手 ----让繁琐的工作自动化 (2.自动化任务)
- hexo博客yilia主题作者名字的更改
- Dinky 0.6.2 已发布,优化 Flink 应用体验
- Linux密码破解(非远程爆破)
- 音频格式转换(ffmpeg)
- 虾米网音乐真实地址解析
热门文章
- uniapp form表单validator函数校验
- 【Unity】项目源码——简单2D空战游戏
- 日本人收了ARM天也不会塌 苹果可以转战MIPS
- python中 .py .pyc .pyw .pyo .pyd各后缀文件区别
- php魔术方法call,PHP魔术方法__call()
- 第五讲 一元函数微分学的几何应用
- #java读书笔记#面向对象2
- 吴恩达机器学习--多类别分类:一对多
- malloc动态创建二维数组(C语言)
- mysql创建表格显示1064错误_尝试创建表时出现错误1064(Error 1064 when trying to create a table)...