Fabric将文件从本地主机复制到多个远程主机

时间:2017-08-31 09:43:41

标签: python fabric

我正在尝试使用fabric put命令将文件从本地结构系统复制到多个远程主机,因此,当我运行它时,它不会抱怨任何东西,但它不会复制文件。

其次,我看到我的远程服务器已经有了这个文件,这可能是个问题吗?在代码下面。

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

env.skip_bad_hosts=True
env.command_timeout=160
env.user = 'jaggle'
env.shell = "/bin/sh -c"
env.warn_only = True
env.password = '!@heyNaSaFreak'
use_sudo = True
def readhost():
    env.hosts = [line.strip() for line in sys.stdin.readlines()]

def copyLDAP():
    put("/Karn/ldap.conf","/etc/ldap.conf", use_sudo = True)

以下是运行的输出...

$ echo "tt-server01" | fab readhost -f OpenDgCopy.py copyLDAP
[tt-server0] Executing task 'copyLDAP'
[tt-server0] put: /Karn/ldap.conf -> /etc/ldap.conf

Done.
Disconnecting from tt-server0... done.

1 个答案:

答案 0 :(得分:0)

您可以直接将readhost选项与逗号分隔的主机列表一起使用,而不是-H任务:

fab -f OpenDgCopy.py copyLDAP -H tt-server0,tt-sever1

根据put的文件:

  

与OpenSSH sftp计划一样,.put将覆盖   预先存在的远程文件,无需请求确认。