2017-08-31 163 views
0

我試圖從我的本地結構系統將文件複製到使用fabricputput命令的多個遠程主機,所以,當我運行它時不會抱怨任何內容它不會複製文件。將文件從本地主機複製到多個遠程主機的結構

其次,我看到我的遠程服務器已經有文件,這可能是一個問題嗎?在代碼下面。

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 = '[email protected]' 
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

取而代之的是readhost任務的,可以直接使用-H選項用逗號分隔的主機列表:

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

根據put的文檔:

與OpenSSH sftp程序一樣,.put將在不請求確認的情況下覆蓋 預先存在的遠程文件。

相關問題