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`