python自动化运维之Telnetlib的具体使用

 更新时间:2021年06月16日 11:50:29   作者:tomorrownan  
本文将结合实例代码,介绍python自动化运维之Telnetlib的具体使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

前言:

远程连接中兴设备(系统使用的中兴网卡)时使用的事Telnet连接,连接时设有二次验证,每次输入用户名密码和执行命令是个繁琐的过程,使用Python自带的telnetlib库可以编写脚本,实现批量登录服务器并执行命令查询数据量。

1.导入telnetlib库可以直接使用。

from telnetlib import Telnet

2.配置服务器、用户名、密码,cmd命令等

##############################需要配置信息##########################
#关联设备服务器IP列表
Hosts=['192.168.1.xx','192.168.1.xx','192.168.1.xx','192.168.1.xx','192.168.1.xx','192.168.1.xx'] 
# 登录用户名   
username = 'xx' 
# 登录密码  
password = 'xx'
#EN命令
EN = 'xx'
#二次验证口令
ZXR10 = 'xx'   
# 命令提示符
finish = 'xx#' 
#需要执行的命令
commands = ['show lte data processing report','show interface xgei1/1']     
#输出内容写入文件
g_outfilePath = '/home/tnOutResult'
####################################################################

IP、username、pwd等都以参数形式传入功能函数。

def do_telnet(Hosts, username, password, finish, commands):

3.功能函数

功能函数主要实现Telnet的远程登录、命令执行。

# 连接Telnet服务器  
        tn = Telnet(host, port=23, timeout=10)
        #tn.set_debuglevel(2) 

        # 输入登录用户名  
        tn.read_until('Username:')  
        tn.write(username + '\n') 

        # 输入登录密码  
        tn.read_until('Password:')  
        tn.write(password + '\n')

        # 输入命令en  
        tn.read_until('ZXR10>')  
        tn.write(EN + '\n')

        # 输入二次验证口令  
        tn.read_until('Password:')  
        tn.write(ZXR10 + '\n')

        # 登录完毕后执行命令  
        tn.read_until(finish)  
        for command in commands:  
            tn.write(command + '\n')
            time.sleep(2)
            for i in range(10):
                tn.write(' ')
                time.sleep(0.1)
            Outresult = tn.read_very_eager()
    #执行完毕后,终止Telnet连接(或输入exit退出)  
    #tn.read_until(finish)  
    tn.close() # tn.write('exit\n')  

read_very_eager()函数是telnetlib模块里的read方法,这里要设置延时time.sleep(2),才能保证数据读取完毕。

telnetlib模块里的read方法介绍:

  • read_until():当结果中存在想要的信息时返回。
  • read_some():只要有结果就返回。
  • read_very_lazy():返回缓冲区中的数据。

telnetlib采用缓冲的处理方式,因此数据并不是一下子就返回的,而是先放在了缓冲区中。许多的读取处理都是围绕着这个缓冲区来的。而缓冲区的信息何时到达就不说不清楚 了,也许很快,也许很慢,也许分别到达,也许一下子就收到了。因此,对于数据不一定到齐的这种情况,就采用了read_until()来判断缓冲区中的数据是否有想要的内容,如果没有就等待,除非到达了超时时间。

详细代码见:

Telnetlib使用教程

https://github.com/wnn0809/WebLovePy/blob/master/Py/Telnetlib%E8%BF%90%E7%BB%B4

到此这篇关于python自动化运维之Telnetlib的具体使用的文章就介绍到这了,更多相关python Telnetlib 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中使用MySQL模糊查询的详细方法

    Python中使用MySQL模糊查询的详细方法

    这篇文章主要介绍了Python中使用MySQL模糊查询的方法,以下是一个使用pymysql进行模糊查询的详细示例,包括安装库、连接数据库、执行查询以及处理结果,需要的朋友可以参考下
    2024-06-06
  • python结合shell自动创建kafka的连接器实战教程

    python结合shell自动创建kafka的连接器实战教程

    这篇文章主要介绍了python结合shell自动创建kafka的连接器,需要安装连接oracle的python包,获取oracle表信息,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • 浅谈PyTorch的数据读取机制Dataloader与Dataset

    浅谈PyTorch的数据读取机制Dataloader与Dataset

    这篇文章主要介绍了浅谈PyTorch的数据读取机制Dataloader与Dataset,DataLoader的作用是构建一个可迭代的数据装载器,每次执行循环的时候,就从中读取一批Batchsize大小的样本进行训练,需要的朋友可以参考下
    2023-07-07
  • python识别围棋定位棋盘位置

    python识别围棋定位棋盘位置

    最近需要做一个围棋识别的项目,本文就介绍了棋盘位置定位,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 解决python3中解压zip文件是文件名乱码的问题

    解决python3中解压zip文件是文件名乱码的问题

    下面小编就为大家分享一篇解决python3中解压zip文件是文件名乱码的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • python实现FTP文件传输的方法(服务器端和客户端)

    python实现FTP文件传输的方法(服务器端和客户端)

    FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。接下来通过本文给大家介绍关于python实现FTP文件传输的相关知识(服务器端和客户端) ,需要的朋友可以参考下
    2020-03-03
  • Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例

    Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例

    这篇文章主要介绍了Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式,结合实例形式分析了Python文件读写相关的指针、打开方式等相关操作技巧,需要的朋友可以参考下
    2019-09-09
  • Python多线程通信queue队列用法实例分析

    Python多线程通信queue队列用法实例分析

    这篇文章主要介绍了Python多线程通信queue队列用法,结合实例形式分析了Python多线程通信queue队列相关概念、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-03-03
  • 在Python中执行系统命令的方法示例详解

    在Python中执行系统命令的方法示例详解

    最近在做那个测试框架的时候发现对python执行系统命令不太熟悉,所以想着总结下,下面这篇文章主要给大家介绍了关于在Python中执行系统命令的方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-09-09
  • Python PyMySQL操作MySQL数据库的方法详解

    Python PyMySQL操作MySQL数据库的方法详解

    PyMySQL是一个用于Python编程语言的纯Python MySQL客户端库,它遵循Python标准DB API接口,并提供了许多方便的功能,本文就来和大家简单介绍一下吧
    2023-05-05

最新评论