利用python3的telnetlib模塊
遠程登錄ros,輸入帳號密碼,然后執行命令,並導出結果到txt文本: 不過實際操作這種方式不行,因為telnet導出來的文本文件,帶顏色編碼,根本無法看哦。
# !/usr/bin/env python # -*- coding:utf-8 -*- # Author:lzd import time def 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)