Fabric:两个远程主机之间的rsync

时间:2015-07-05 17:00:29

标签: rsync fabric

我希望使用Fabric从远程生产服务器到远程备份服务器的rsync文件。

存储在我的本地~/.ssh/config

中的服务器凭据
Host backup
     HostName 1.1.1.1
     Port 33333
     User swasher

Host production
    HostName 2.2.2.2
    Port 44444
    User swasher

现在我想在生产机器上运行rsync,我需要在此命令中插入备份服务器的主机/用户/名称,如下所示

@hosts('production')
def backup():
    run("rsync -avz  -e 'ssh -p {PORT}' /from/ {USER}@{HOST}:/to/'.format(backup.PORT, backup.USER, backup.HOST))

如何获取备份服务器的凭据以运行rsync?

1 个答案:

答案 0 :(得分:0)

不是织物,但它可以完成工作

尝试将dirs和嵌套子目录从本地复制到远程:

cmd = "sshpass -p {} scp -r {}/* root@{}://{}".format(
    remote_root_pass, 
    local_path, 
    remote_ip, 
    remote_path)
os.system(cmd)

不要忘记导入操作系统,你可以检查返回的exitcode(0表示成功)

此外,您可能需要“yum install sshpass”

并更改/ etc / ssh / ssh_config StrictHostKeyChecking要求:StrictHostKeyChecking no