当前位置: 首页 > 面试题库 >

如何使用Fabric将目录复制到远程计算机?

暨正真
2023-03-14
问题内容

我在本地计算机上有一个目录,我想使用Fabric将其复制到远程计算机上(并重命名)。我知道我可以使用复制文件put(),但是目录呢。我知道使用
scp 很容易,但是fabfile.py如果可能的话,我宁愿在我内部进行。


问题答案:

您也可以使用put它(至少在1.0.0中使用):

local_path可以是相对或绝对本地文件或 目录路径 ,并且可以包含 shell样式的通配符 ,如Python glob
模块所理解的那样。波形扩展(由os.path.expanduser实现)也将执行

请参阅:http
:
//docs.fabfile.org/en/1.0.0/api/core/operations.html#fabric.operations.put

更新:此示例对1.0.0很好(对我而言):

from fabric.api import env
from fabric.operations import run, put

env.hosts = ['frodo@middleearth.com']

def copy():
    # make sure the directory is there!
    run('mkdir -p /home/frodo/tmp')

    # our local 'testdirectory' - it may contain files or subdirectories ...
    put('testdirectory', '/home/frodo/tmp')

# [frodo@middleearth.com] Executing task 'copy'
# [frodo@middleearth.com] run: mkdir -p /home/frodo/tmp
# [frodo@middleearth.com] put: testdirectory/HELLO -> \
#     /home/frodo/tmp/testdirectory/HELLO
# [frodo@middleearth.com] put: testdirectory/WORLD -> \
#     /home/frodo/tmp/testdirectory/WORLD
# ...


 类似资料:
  • 我正在使用: openjdk版本“11.0.1”2018-10-16 Apache Maven 3.6.0来构建我的项目。 期望从我编译的服务器复制3个资源文件到复制资源文件的服务器。预期方式: 从本地目标/类/env/${current_env}复制context.xml /online/sand/pps/apache-tomcat-9.0.8/webapps/pps/META-INF_cont

  • 我正在使用spring集成从远程sftp服务器中提取文件。一个要求是,在将文件从远程服务器目录拉入本地目录后,需要将拉入文件的副本归档到同一个sftp服务器上的不同目录中。 我在这里检查了不同的选项。本地有文件同步或文件复制选项。但没有找到远程的选项。 我应该尝试Spring集成以外的其他东西吗?我使用Spring集成是因为它已经是应用程序的一部分。这是一个新要求。

  • 在谷歌上搜索了很长时间后,我没有找到一个pyspark接口来获取文件列表。似乎pyspark没有提供这样的接口。 我看到一个SO回答,说我需要使用hdfscli并将其导入到我的python脚本中。这也是唯一的办法吗?我不敢相信Spark没有hdfs文件列表的方法。

  • 问题内容: 我有一个目录/ a / b / c,其中包含文件和子目录。我需要将/ a / b / c / *复制到/ x / y / z目录中。我可以使用哪些python方法? 我试过了,但是python尝试创建/ x / y / z并引发一个。 问题答案: 我发现此代码有效: 参考: Python 2:https://docs.python.org/2/distutils/apiref.html

  • 问题内容: 我曾经复制过一个目录树,但是已经过时了。我的目录包含一些子目录,其中一些包含文件,另一些包含更多子目录。 如何复制整棵树? 问题答案: 相信可以做到您想要的…(递归复制已完成)

  • 我见过几个与这个话题有关的问题和答案,但我一直无法掌握如何做。 > 我所能做的:使用Python脚本(使用Paramiko)连接到远程计算机,并返回信息,例如,ping交换机: ssh=pk.sshclient() ssh.connect(“{}”.format(IP),port=xxx,username='xxx',password='xxx') stdin,stdout,stderr=\“ s