一旦我連接到遠程服務器,如下所示,如何查看paramiko的gzip文件的內容?
transport.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(transport)
我可以做sftp.listdir()
,看看有遠程服務器上的一些gzip格式,如example.gz.2016
。我如何通過sftp連接訪問此文件的文本,而無需實際下載文件?
一旦我連接到遠程服務器,如下所示,如何查看paramiko的gzip文件的內容?
transport.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(transport)
我可以做sftp.listdir()
,看看有遠程服務器上的一些gzip格式,如example.gz.2016
。我如何通過sftp連接訪問此文件的文本,而無需實際下載文件?
你的問題有兩個部分:
首先事情第一:如何列出控制檯上的zip文件的內容。 less
can look into zip files,所以你的情況,執行less example.gz.2016
應該給你的zip壓縮包
二內的文件列表:如何遠程執行命令。
import paramiko
ssh = paramiko.SSHClient()
# next is needed if your keys are not yet known on the client.
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(HOST_NAME, username=USER, password=PASSWORD)
stdin, stdout, stderr = ssh.exec_command('less ' + zipfilename)
for line in stdout.readlines():
# here you will have your listing
print (line)
for errline in stderr.readlines():
# Don't forget to check the error output
print ('***', errline)
祝你好運!
編輯 如果你需要一個SFTP連接到同一臺服務器,您需要從這樣的
sftp = ssh.open_sftp()
查找所有可能的功能當我嘗試這個時,我得到'paramiko.ssh_exception.SSHException:Channel closed.'異常。我該如何解決這個問題? –
@Someone_Else:很難分辨..你確定你的服務器正在運行ssh嗎? – Ward
我認爲這是?做'nmap -p22 -Pn remotehost.com'確實有效(儘管nmap -p22 remotehost.com不支持,所以誰知道)。 –
這是不可能的SSH連接得到它,但你可以用通常的控制檯命令列出它們通過SSH。 –
爲什麼不可能這樣? –
它不是SFTP協議的一部分。你可以在https://tools.ietf.org/html/draft-ietf-secsh-filexfer-13 –