使用Python中的sftp.put将匹配/通配符文件发送到另一台服务器

时间:2020-03-06 08:21:43

标签: python ssh sftp paramiko pysftp

所以我试图将某个文件从本地服务器发送到另一台服务器。如果我知道文件的确切名称,则可以发送文件。 Bur我实际上想要做的就是拾取一个具有匹配名称的文件,然后再发送相同的文件。

例如,我的文件名是filename_:test_file_20190918 我想拿起所有匹配test_file _ *

的文件

这是我要尝试的操作,但似乎不起作用

import paramiko
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='host_name',username='username',password='pwd',port=22)
sftp_client=ssh.open_sftp()

sftp_client.put("/home/mylocation/test_file_*",'/incoming/test_file_send*')

sftp_client.close()
ssh.close()

1 个答案:

答案 0 :(得分:0)

Paramiko不支持通配符。

在致电SFTPClient.put之前,您必须自己找到正确的文件。

请参见Get a filtered list of files in a directory


强制性警告:除非您不关心安全性,否则请勿使用AutoAddPolicy。您正在通过这种方式失去针对MITM攻击的保护。
有关正确的解决方案,请参见Paramiko "Unknown Server"