如何使用 python 通过 telnet 会话将文本文件的内容复制到变量
How to copy contents of a text file to a variable over a telnet session using python
我有以下程序,我将终端上的输出重定向到文本文件:
import telnetlib
import time
import string
tn = telnetlib.Telnet("192.168.1.102")
print "Attempting Telnet connection...."
tn.read_until("login: ")
tn.write("root1\n")
time.sleep(1)
tn.read_until("Password:")
tn.write("\n")
tn.write("\n")
tn.read_until("root1@mypc:~$")
tn.write("su\n")
tn.read_until("root@mypc:/home/root1")
tn.write("\n")
print "Telnet logged in successfully....\n"
tn.write("head /proc/meminfo > /home/a.txt")
tn.write("\n")
我想将此文件的文本内容复制到缓冲区变量并进行处理。也就是说,我不想从 console/terminal 读取。我只想将输出重定向到一个文本文件,然后从文本文件中读取。 telnetlib
是否提供任何直接功能来实现此目的或任何替代方法?
编辑此代码从远程主机上的本地文件中读取
请尝试下面的代码,假设在您执行命令后,您会得到以下字符串:"root@mypc:/home/root1"
tn.write("cat /home/a.txt")
tn.write("\n")
data = ''
while data.find("root@mypc:/home/root1") == -1:
data = tn.read_very_eager()
print data
TELNET 协议或多或少是一种远程终端仿真。它不提供文件传输功能,因为其他协议处理该功能。这意味着一旦您在远程系统上写入文件,您将必须使用 cat
显示它并存储 cat
命令的输出。
或者,您可以使用用于文件传输的协议,如 FTP、RSYNC、SFTP、FTPS 等来下载远程文件。只需使用可在您的远程系统上访问的那个。
我有以下程序,我将终端上的输出重定向到文本文件:
import telnetlib
import time
import string
tn = telnetlib.Telnet("192.168.1.102")
print "Attempting Telnet connection...."
tn.read_until("login: ")
tn.write("root1\n")
time.sleep(1)
tn.read_until("Password:")
tn.write("\n")
tn.write("\n")
tn.read_until("root1@mypc:~$")
tn.write("su\n")
tn.read_until("root@mypc:/home/root1")
tn.write("\n")
print "Telnet logged in successfully....\n"
tn.write("head /proc/meminfo > /home/a.txt")
tn.write("\n")
我想将此文件的文本内容复制到缓冲区变量并进行处理。也就是说,我不想从 console/terminal 读取。我只想将输出重定向到一个文本文件,然后从文本文件中读取。 telnetlib
是否提供任何直接功能来实现此目的或任何替代方法?
编辑此代码从远程主机上的本地文件中读取 请尝试下面的代码,假设在您执行命令后,您会得到以下字符串:"root@mypc:/home/root1"
tn.write("cat /home/a.txt")
tn.write("\n")
data = ''
while data.find("root@mypc:/home/root1") == -1:
data = tn.read_very_eager()
print data
TELNET 协议或多或少是一种远程终端仿真。它不提供文件传输功能,因为其他协议处理该功能。这意味着一旦您在远程系统上写入文件,您将必须使用 cat
显示它并存储 cat
命令的输出。
或者,您可以使用用于文件传输的协议,如 FTP、RSYNC、SFTP、FTPS 等来下载远程文件。只需使用可在您的远程系统上访问的那个。