2012-05-10 1 views
0

많은로드 균형 조정 웹 노드 (w1, w2, w3)에 여러 도메인 (a.com, b.com 및 c.com)을 동기화하려고합니다.모든 웹 노드를 마스터에서 rsync 할 수 있습니까?

내가 노드 1 (W1)에 구축하고 다음과 같이 뭔가 다른 사람에 rsync는 계획 : 같은 동적 스크립트를

rsync -arv /var/www/vhosts/a.com/ [email protected]:/var/www/vhosts/a.com/ 

(이미 W1에있어 가정) :

#!/bin/bash 

DOMAINS="a.com b.com c.com" 
NODES="w2 w3" 

for DOMAIN in $DOMAINS; do 
     for NODE in $NODES; do 
       COMMAND="rsync -arv --exclude 'logs' --exclude '.git' /var/www/vhosts/$DOMAIN/ [email protected]$NODE:/var/www/vhosts/$DOMAIN/" 
       echo "$COMMAND" 
       "$COMMAND" 
     done 
done 

첫 번째 설명서는 rsync입니다. 그러나 어떤 이유로 든 내 일괄 rsync 스크립트가 깨졌습니다.

나를 위해 디버깅하는 데 도움이되는 사람은 누구입니까? 감사.

+1

'-x' ('sh -x yourscript')로 실행하고 정확히 무엇을하는지보십시오. – larsks

+0

잊어 버려. 내 노드 별칭 이름에 문제가있었습니다. 내 잘못이야. 질문을 되돌리고 답변에 대한 크레딧을 줄 것입니다. 감사. – Ryan

답변

1

과도한 인용이 있습니다. 이에

"$COMMAND" 

: 당신이 모든 것을 주위에 따옴표를 넣을 때

$COMMAND 

는, 쉘은 하나의 "토큰"로 해석이 줄을 변경합니다. 다음은 간단한 예입니다 :

$ COMMAND="echo hello" 
$ "$COMMAND" 
bash: echo: command not found... 
$ $COMMAND 
hello 
관련 문제