我的环境中有很多cisco交换机和路由器。我有三套凭证(其中只有一套适用于特定设备)。然后我在记事本上列出IP地址(子.txt). 以及另一个记事本上的配置(配置文件)在

目的是从配置文件通过SSH到IP列表列表。如果设备接受了命令,则应将日志放入成功.txt如果由于某种原因不接受该命令,则应附加一个日志失败.txt在

但这行不通。你能帮我修好吗?在import paramiko

import time

import sys

import logging

import socket

import pexpect

import traceback

from pexpect.popen_spawn import PopenSpawn

remote_conn_pre = paramiko.SSHClient()

remote_conn_pre.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ips = [i.strip() for i in open("sub.txt")]

user_local = "user1"

pass_local = "pass1"

user_aspac = "user2"

pass_aspac = "pass2"

user_batcca = "user3"

pass_batcca = "pass3"

g = open('config.txt', 'r+')

str = g.read()

g.close

success = open('success.txt', 'a')

fail = open('failed.txt', 'a')

paramiko.util.log_to_file("paramiko.log")

for ip in ips:

try:

remote_conn_pre.connect(ip, username=user_local, password=pass_local, timeout=4, look_for_keys=False, allow_agent=False)

#print ("SSH connection established to %s" + ip)

remote_conn = remote_conn_pre.invoke_shell()

print (ip + ' === local credential')

#remote_conn.send("show switch\n")

remote_conn.send((str))

time.sleep(2)

output = remote_conn.recv(5000)

print (output)

except paramiko.AuthenticationException:

try:

remote_conn_pre.connect(ip, username=user_aspac, password=pass_aspac, timeout=4, look_for_keys=False, allow_agent=False)

remote_conn1 = remote_conn_pre.invoke_shell()

print ip + ' === Global Credentials'

#output = remote_conn.recv(500)

#remote_conn.send("show switch")

#remote_conn.send("\n")

remote_conn1.send((str))

time.sleep(2)

output1 = remote_conn1.recv(5000)

print (output1)

except paramiko.AuthenticationException:

try:

#remote_conn_pre.connect(ip, username=user_batcca, password=pass_batcca, timeout=4, look_for_keys=False, allow_agent=False)

#remote_conn2 = remote_conn_pre.invoke_shell()

child = pexpect.popen_spawn.PopenSpawn('ssh ' + user_batcca + '@' + ip)

child.expect ('[pP]assword:')

child.sendline(pass_batcca)

print ip + ' === BATCCA Credential'

#output2 = remote_conn2.recv(5000)

for line in open('Config.txt').xreadlines():

child.sendline(line)

i = child.expect (['#', '^'])

if i==0:

success.write(ip + '\t' + line +'\n')

elif i==1:

fail.write(ip + '\t' + line +'\n')

time.sleep(5)

output2 = child.recv(5000)

print (output2)

except paramiko.AuthenticationException:

print ip + ' === Bad credentials'

remote_conn3 = remote_conn_pre.invoke_shell()

output3 = remote_conn3.recv(5000)

print (output3)

except paramiko.SSHException:

print ip + ' === Issues with ssh service'

except socket.error:

print ip + ' === Device unreachable'

python通过ssh配置交换机_配置(通过SSH)Cisco交换机的Python脚本相关推荐

  1. 华为交换机ssh思科交换机_配置华为交换机ssh方式登录

    LAB2: 配置SSH登陆(Passworkd认证) 1.配置VTY界面的认证方式和协议 [HW_FW]user-interface vty 0 4 [HW_FW-ui-vty0-4]authenti ...

  2. 思科交换机配置试题_【干货】思科交换机路由器怎么配置密码?

    今天带大家看看如何在思科的交换机路由器当中配置安全特性,也就是密码的配置方式. 在学习配置之前,我们先回顾一下密码相关知识. 密码学是研究信息系统安全保密的科学.人类有记载的通信密码始于公元前400年 ...

  3. servlet 配置 使用_配置HTTPS以与Servlet一起使用

    servlet 配置 使用 要配置Java EE应用程序以通过HTTPS进行通信,需要在web.xml文件中使用几行XML. web.xml文件位于项目的WEB-INF目录中,通常在IDE生成Java ...

  4. apollo 配置中心_配置中心——Apollo小记

    一.什么是配置 配置是程序运行时,动态调整行为的能力. 配置有以下属性: 配置是独立于程序的只读变量 同一份程序在不同的配置下才会有不同的行为,而且配置对于程序来说是只读的,所以程序可以通过读取配置来 ...

  5. python手机端编程环境_移动端自动化测试解决方案(Appium + Python) - (1) 环境搭建...

    最近对iOS自动化测试做了一番探究,希望通过自动化测试更好的去提高公司项目的测试效率 .在网上找了很多的文章和相关资料,都因为时间比较久导致无法实现基本环境的搭建,我在这儿分享给大家分享我的实现过程. ...

  6. 初学python有几个阶段_零基础如何系统的学习Python 从7个阶段入手

    目前信息化产业发展势头很好,互联网就成为了很多普通人想要涉及的行业,因为相比于传统行业,互联网行业涨薪幅度大,机会也多,所以就会大批的人想要转行来学习Python开发. Python语言的应用 Pyt ...

  7. python基础教程价格范围_价值18980元的968集Python教程,在此透露给大家!速度来拿哇...

    我是完全自学的,看完这条回答你就不用花钱学了.一千多的课程也就是基础课,并不会给你有多深入.如果要是学基础的话,看看下面的学习线路图以及相关的学习方法足够了.贴一个我之前自学的路径图和方法. 小白学P ...

  8. python 数组合并排重_并排深度学习:Julia vs Python

    python 数组合并排重 Julia could possibly be the biggest threat to Python. For a variety of applications, J ...

  9. python难度大的题_早看少被坑!Python 最难的问题

    超过十年以上,没有比解释器全局锁(GIL)让Python新手和专家更有挫折感或者更有好奇心. 未解决的问题 随处都是问题.难度大.耗时多肯定是其中一个问题.仅仅是尝试解决这个问题就会让人惊讶.之前是整 ...

最新文章

  1. UDP Socket基本思路小程序(2) 多线程简单聊天程序
  2. 科大讯飞的2018:深陷同传造假及炒房风波,市值遭腰斩蒸发600亿
  3. 使用百度UEditor
  4. 知方可补不足~数据库名称和数据库别名不同了怎么办
  5. 【UI/UX】桌面GUI设计
  6. 16 岁赚到 20 万美元,我的编程之路始于对代码的热爱
  7. IT人士|不可不知的10个行业内幕
  8. openwrt 遇到问题三 高通9531编译过程
  9. 深入理解MyBatis缓存
  10. Python的学习笔记案例4--52周存钱挑战2.0
  11. 【springboot短信收发】
  12. 方正璞华研发的社保股权管理系统初见成效
  13. 计算机连上wifi无法上网了,电脑已连接wifi但无法上网 已连接wifi但电脑无法上网-192路由网...
  14. android加法计算器代码,Android实现简单加法计算器
  15. opencv实现色彩还原(白平衡)
  16. 通过Swap函数交换两个变量的值
  17. Flutter应用架构之BloC模式实践
  18. 一套开源免费的OA办公管理系统源码,带小程序、生成APP
  19. 《数据结构》实验报告六:图的表示与遍历
  20. vm15 版本win mac 的unlocker 安装失败 unlocker不能使用

热门文章

  1. linux怎么不更新内核,Linux升级时不升级内核的方法
  2. linux操作系统 抢占式,Linux操作系统内核抢占补丁的基本原理(2)
  3. 抖音python课程价格_抖音
  4. 工业时序大数据质量管理
  5. 学术大数据在企业专家对接中的应用
  6. 【2016年第3期】大数据时代的数据科学家培养
  7. 【OJ】洛谷循环结构题单题解锦集
  8. 【数据结构与算法】双链表V2.0的Java实现
  9. HTML5 入门详解
  10. 作为开发人员,这四类Code Review方法你都知道吗?