利用python3的telnetlib模块
远程登录ros,输入帐号密码,然后执行命令,并导出结果到txt文本: 不过实际操作这种方式不行,因为telnet导出来的文本文件,带颜色编码,根本无法看哦。
# !/usr/bin/env python# -*- coding:utf-8 -*-# Author:lzdimport timedef do_telnet(Host, username, password, finish, commands): import telnetlib '''''Telnet远程登录:Windows客户端连接Linux服务器''' # 连接Telnet服务器 tn = telnetlib.Telnet(Host, port=23510) tn.set_debuglevel(2)#开启telnet调试模式 # 输入登录用户名 tn.read_until(b'Login: ') tn.write(username + b'\n') # 输入登录密码 tn.read_until(b'Password:') tn.write(password + b'\n') # 登录完毕后执行命令 tn.read_until(finish) #print(commands) tn.write(commands+b'\r\n') time.sleep(10)#这里一定要等待10秒,因为你write命令以后,会等待很长时间,原因不详。 # 执行完毕后,终止Telnet连接(或输入exit退出) tn.read_until(finish) tn.write(b'quit\r\n') #time.sleep(3) result = tn.read_all() file_object = open('result.txt', 'wb') file_object.write(result) file_object.close() print('Finish') tn.close()if __name__ == '__main__': # 配置选项 Host = '192.168.200.100' # Telnet服务器IP username = 'xxxx'.encode(encoding='utf-8') # 登录用户名 password = 'xxxx'.encode(encoding='utf-8') # 登录密码 finish = '>'.encode(encoding='utf-8') # 命令提示符 commands = 'ping 192.168.12.254 c 10'.encode(encoding='utf-8') do_telnet(Host, username, password, finish, commands)