개요

rsync를 사용하다 특정 타겟 디렉토리는 sync가 되지 않았으면 좋겠다는 필요성이 생겼다. 따라서 방법을 찾아보고 정리해둔다.

사용법

아래는 rsync의 예제이다. 아래와 같이 exclude할 디렉토리가 여러개인 경우 –exclude를 여러번 기술하면 된다. 또한 핵심은 rsync할 옮겨지는 실제 디렉토리의 root를 기준으로 exclude를 기술하면 된다. 말뜻이 조금 어려운데 풀어서 설명하자면 아래의 스크립트에서는 ~/atlas/apache-atlas를 옮긴다고 기술해도 실제로 옮겨질 디렉토리는 apache-atlas 이 root에 해당하는 depth이기 때문에 exclude는 ~/atlas/apache-atlas/data로 기술하지 않고 apache-atlas/data로 기술하면 된다.

$ rsync -rv -e ssh --delete --exclude apache-atlas/data --exclude apache-atlas/solr/server/solr --exclude apache-atlas/metastore_db  ~/atlas/apache-atlas suser@$nodename:/home/suser/