ファイルやシェルコマンドを同期するためのクラスタツールで-02

CmdSync.sh

[ルート@ localhostの同期]#猫CmdSync.sh
#!/ binに/ bashの


#同步集群命令

CONF = .. / configの

PraserConf(){
    NUM = `sedの-n -e '/ ^ \ [' $ 1' \] / = '$ CONF`
    せTEMP = NUM + 1
    SED -N' $のtemp'p' $ CONF
}

nodes_str = `PraserConf nodes`
old_ifs = "$ IFS"
IFS = ""
ノード=($ nodes_str)


のcmdsync() {
    CMD = $ 1
    エコー$ 1
    、$ {ノード[*]}内のノードの
    実行  
        エコー-e "\ E [32メートル****** $ノード****** \ E [0メートル"
        $ノード"@ SSHルート$ CMD」
        [$場合は?-eq 0]
        次に
            CMD成功エコー
        Fiが
    行わ
}

」のcmdsync

 

FileSync.sh:

        1 [$場合は?-ne 0]         その後、






























            $ BASE_DIR:$ 1ルートscpのノード$ @ -r
            #>を/ dev / null 2>&1
            IF [$ 1 -eq?]
            その後、
                $ノード"ます。mkdir -p $ BASE_DIR" @ SSHルート
                のscp -r $ 1ルート@ $ノード: $ BASE_DIR
                #>を/ dev / null 2>&1
            Fiの
        Fiを
    DONE
}


#パススイッチ
#の変換パスは絶対
tran_path(){
    IF [[ "$ 1" =〜^ /]
    次に
        [[ "$ 1" =〜IF / $]
        次に
            BASE_DIRエコー$ = '1 | AWK -F」/ "「{ため(I = 2; I <=のNF-1、I ++)のprintf(" /%S "、$ I)}`
            エコー$のBASE_DIR
        他には
            $ 1エコー
        Fiを提供して
    elifの[[-d $ 1]] || [[-z $ 1]]
    その後、
        パス= `pwd`は/ $ 1
        のCD $パス>は/ dev / nullに
        real_path =` pwd`は
        エコー$ real_path
    他の
        パス= `pwd`は/ $ 1
        BASE_DIR = `エコー$パス| AWK -F "/" '{(iは= 1; I <= NF-1; I ++)のprintf( "%sの/"、$ i)に対する}`
        CD $ BASE_DIR>は/ dev /ヌル
        real_path = `pwd`は/`ベース名$ 1 '
        CD - >は/ dev / nullに
        エコー$ real_path
    Fiの
}

$ 1 #tran_path
SyncFile `tran_pathの$ 1`

おすすめ

転載: www.cnblogs.com/wuchy/p/12177395.html