所以我试图将某个文件从本地服务器发送到另一台服务器。如果我知道文件的确切名称,则可以发送文件。 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()
答案 0 :(得分:0)
Paramiko不支持通配符。
在致电SFTPClient.put
之前,您必须自己找到正确的文件。
请参见Get a filtered list of files in a directory。
强制性警告:除非您不关心安全性,否则请勿使用AutoAddPolicy
。您正在通过这种方式失去针对MITM攻击的保护。
有关正确的解决方案,请参见Paramiko "Unknown Server"。