[완료] rsync 를 SSH 를 이용하여 동기화 시킬때 중복 실행을 막을 방법 있나요?

망치의 이미지

rsync -e ssh 로 원격 서버의 데이터와 로컬 백업 서버 데이터를 동기화시키고 있습니다.

cron 을 이용하여 동기화 간격을 5분정도로 잡아놓고 있는데, 간격이 짧다보니 대용량 데이터가 업데이트됐을경우 동기화 시간이 5분을 넘어가서 중복실행이 되는 경우가 생길 수 있을것같은데 어떻게 방지해야 하나요?

glay의 이미지

cron 을 안쓰면 됩니다..

screen 으로 뛰우고 while 문으로 무한루프 그리고 rsync 뒤에 && sleep 500

이런식으로 루프 돌리고 빠져 나오세요.

그걸 time 과 함께 로그를 남기는것도 좋은 방법입니다 :)

--------------- 절취선 ------------------------
하늘은 스스로 삽질하는 자를 삽으로 팬다.

http://glay.pe.kr


--------------- 절취선 ------------------------
하늘은 스스로 삽질하는 자를 삽으로 팬다.

http://glay.pe.kr

lusilis의 이미지

rsync를 아래와 같이 스크립트로 구성해서 사용해보세요..

LOCK=/tmp/.xxx.lock

trap 'rm -f $LOCK; exit 1' 1 2 3 15

if [ -f $LOCK ]; then
echo "ERROR: Rsync already running !"
exit 1;
fi

touch $LOCK

[rsync command 들어가는 부분]

rm -rf $LOCK

꼭 5분 단위로 업데이트 해야 되는 경우가 아니라면 문제 없겠지만 5분 간격을 지켜야 한다면 업로드 프로세스 자체를 잘 살펴보셔야 될 것 같습니다..

망치의 이미지

두분 답변 감사드립니다. 큰 도움이 됐습니다. :D

---------------------------------------
http://www.waitfor.com/

---------------------------------------
http://www.waitfor.com/
http://www.textmud.com/