如何使用Fabric从多个节点同时复制?

时间:2014-04-23 20:17:20

标签: python amazon-ec2 fabric

我刚刚开始使用Fabric,看起来是一个非常有用的工具。我能够编写一个小脚本在我的Amazon EC2主机上并行运行一些命令,如下所示:

@parallel
def runs_in_parallel():
    sudo("sudo rm -rf /usr/lib/jvm/j2sdk1.6-oracle")

另外,我编写了另一个脚本,将所有Hadoop日志从所有EC2节点复制到本地计算机。此脚本创建一个文件夹,其中包含时间戳作为名称,在每个节点的1个文件夹中作为其IP地址,然后将该节点的日志复制到此IP地址命名文件夹中。 E.g:

2014-04-22-15-52-55
    50.17.94.170 
         hadoop-logs
    54.204.157.86  
         hadoop-logs
    54.205.86.22 
         hadoop-logs

现在我想使用Fabric执行此复制任务,以便我可以并行复制日志,以节省时间。我认为我可以像在第一段代码片段中那样轻松地完成它,但这无济于事,因为它在 远程服务器上运行命令 。我现在不知道如何做到这一点。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可能会使用get()命令来处理下拉文件。你想把它们变成tarball,并让它们在你的客户端上插入独特的文件名,以防止它们互相破坏。