Paramiko scp 从远程机器正则表达式复制

Dev*_*nga 2 python scp paramiko python-2.7

有没有办法我可以使用 paramiko scp 复制以名称“output”结尾的远程文件。

我有下面的代码,仅当我提供完整路径或确切的文件名时才会复制

下面是代码

 import paramiko
 import os
 from paramiko import SSHClient
 from scp import SCPClient


def createSSHClient(self, server):
    client = paramiko.SSHClient()
    client.load_system_host_keys()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(server, self.port, self.user, self.password)
    return client

  def get_copy(self, hostname, dst):
    ssh = self.createSSHClient(hostname)
    scp = SCPClient(ssh.get_transport())
    scp.get(dst)
    scp.close()
Run Code Online (Sandbox Code Playgroud)

我正在尝试的是

     get_copy(1.1.1.1, "*output")
Run Code Online (Sandbox Code Playgroud)

我收到文件未找到错误

atl*_*ine 5

也许需要先使用 ssh 获取列表,然后将它们一一进行 scp。

类似如下,仅供参考。

def get_copy(self, hostname, dst):
    ssh = createSSHClient(hostname)

    stdin, stdout, stderr = ssh.exec_command('ls /home/username/*output')
    result = stdout.read().split()

    scp = SCPClient(ssh.get_transport())
    for per_result in result:
        scp.get(per_result)
    scp.close()
    ssh.close()
Run Code Online (Sandbox Code Playgroud)