본문 바로가기
쉘스크립트애들

쉘 스크립트로 rsync 수행하기 : rsync -avz --exclude

by 혜룐 2015. 11. 10.
rsync -avz --exclude=${exdir1} --exclude=${exdir2} ${stage_SRC}/${1}/ ${TRG_IP}::R${TRG}/${1}
여기에서 $1 은 해당 스크립트를 수행했을때 처음 파라미터를 의미한다.
즉 ./스크립트명 test
에서의 test 를 말한다.
1) 해당 소스
pvod-stage /ss/bin 353 $ vi ppppp_deploy.sh 
#!/bin/bash
## parameter $1
DAY1=`date +%m%d`
LOGDIR="/tmp/deploylog/ppppp/$DAY1"
## stage server's ip
stage_SRC=/data/docs/ppppp
## target server's pwd
TRG=/data/docs/ppppp
## target server's ip
source /ss/bin/deploy_trg.ini -->ini안에 target서버 아이피 목록을 갖고 있다.
## exclude dir -->rsync 시 제외할 파일명과 디렉터리명을 선언했다.
exdir1=.svn
exdir2=tmp
## MAIN
TODAY=`date +%H`
if ! [ -d $LOGDIR ];then
echo "mkdir -p $LOGDIR"
mkdir -p $LOGDIR
fi
## target서버 아이피목록을 line으로 읽고 rsync를 수행하는 main 함수다.
##
R
은 rsync 시 사용되는 값이다.
for i in $LIST ; do
TRG_IP=$(echo $i | awk -F:: {'print $1'})
rsync -avz
--exclude=${exdir1} --exclude=${exdir2}
${stage_SRC}/${1}/ ${TRG_IP}
::R
${TRG}/${1}>>${LOGDIR}/${TODAY}.log
done
echo "## End Deploy. Deploy Log : $LOGDIR/$TODAY.log "
2) 수행한 결과를 보기위해 로그를 남긴다.
$LOGDIR/$TODAY.log