【发布时间】:2019-02-19 15:47:49
【问题描述】:
我正在尝试使用 python 和 paramiko 实现一些自动化(使用我的基本初学者逻辑)。
我很高兴地说下面的代码有效。直到我添加命令 'rm -f testtrace.pcap 以删除通过 sftp 下载的文件。
定义登录凭据
host = input("Host: ")
user = input("User: ")
port = 22
password = getpass("Password: ")
打开 ssh 连接
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, port=port, username=user, password=password)
执行命令run tcpdump
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()
打开 sftp 连接
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()
【问题讨论】:
-
是的,这是我一两天都在努力解决的问题,我在注册 * 后的 10 分钟内设法解决了!