我正在尝试使用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.
答案 0 :(得分:0)
您可以直接将readhost
选项与逗号分隔的主机列表一起使用,而不是-H
任务:
fab -f OpenDgCopy.py copyLDAP -H tt-server0,tt-sever1
根据put
的文件:
与OpenSSH
sftp
计划一样,.put
将覆盖 预先存在的远程文件,无需请求确认。