[英]Paramiko ssh/ sftp multiple commands
我正在嘗試使用 python 和 paramiko(使用我的基本初學者邏輯)實現一些自動化。
下面的代碼我很高興地說有效。 直到我添加命令 'rm -f testtrace.pcap 以刪除通過 sftp 下載的文件。
host = input("Host: ")
user = input("User: ")
port = 22
password = getpass("Password: ")
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, port=port, username=user, password=password)
stdin, stdout, stderr = ssh.exec_command('timeout 10 tcpdump port 5060 -nnv -s 0 -w testtrace.pcap')
channel = stdout.channel
channel.recv_exit_status()
ssh.close()
transport = paramiko.Transport((host, port))
transport.connect(username=user, password=password)
sftp = paramiko.SFTPClient.from_transport(transport)
filepath = '/root/testtrace.pcap'
localpath = 'C:\\Users\\******\\Desktop\\python\\testtrace.pcap'
sftp.get(filepath, localpath)
stdin, stdout, stderr = ssh.exec_command('rm -f testtrace.pcap')
channel = stdout.channel
channel.recv_exit_status()
ssh.close()
沒錯,我已經苦苦掙扎了一兩天的問題,我設法在注冊 Stackoverflow 后的 10 分鍾內解決了!。
stdin, stdout, stderr = ssh.exec_command('timeout 10 tcpdump port 5060 -nnv -s 0 -w testtrace.pcap')
channel = stdout.channel
channel.recv_exit_status()
我過早地關閉了 ssh 連接。 通過從本節中刪除 ssh.close() 似乎已經解決了問題並且現在可以正常運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.