【问题标题】:How to copy multiple files from unix to window using scp command? [duplicate]如何使用 scp 命令将多个文件从 unix 复制到窗口? [复制]
【发布时间】:2020-08-28 13:06:45
【问题描述】:

我正在使用 scp 将文件从 unix 下载到 windows 机器。我可以一次下载一个文件。 如何使用类似选项下载文件? 我可以在下面下载。 scp.get('/abc/def/input/interface.20200812.6543.log')

由于我不知道文件的确切名称应该是什么,我该如何执行以下操作来下载多个文件:

scp.get('/abc/def/input/interface.今天的日期.*.log')

【问题讨论】:

标签: python-3.x paramiko scp


【解决方案1】:

正如SCPClient.get 方法的docstring 中所指出的,远程路径由远程主机上的 scp 评估,因此您在远程路径中使用通配符的问题应该可以工作,例如:

import datetime
scp.get(f'/abc/def/input/interface.{datetime.date.today().strftime('%y%m%d')}.*.log')

【讨论】:

  • 它似乎不起作用。恐怕文档是错误的。 SCPClient 似乎转义了所有特殊字符。
  • 是的,它不起作用。 SCPClient 只接受文件的全名。不允许在文件名中使用 *。
  • 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() 在上面找到并且正在工作。
  • 是的,如果通配符不起作用,那么很遗憾,您将不得不使用 ssh 来获取您自己的目录列表,然后将列表中所需的文件集逐个迭代到 scp。
猜你喜欢
  • 2013-05-28
  • 2015-06-27
  • 2013-11-25
  • 2020-02-25
  • 2017-09-08
  • 2015-08-26
  • 2015-03-17
  • 2022-09-22
  • 2015-07-17
相关资源
最近更新 更多