이것은 내 현재 rsync 쉘 스크립트입니다.
upload.sh
SOURCEDIR=/Users/thomas/sites/dreamhost/
DESTDIR=******@reggi.com:/home/thomasreggi/sites/
##rsync -avzL --delete --include '*/' --include-from=list.txt --exclude '*' $DESTDIR $SOURCEDIR
SOURCEDIR=/Users/thomas/sites/dreamhost/
DESTDIR=******@reggi.com:/home/thomasreggi/sites/
rsync -avzL --delete --exclude=".DS_Store" --exclude-from=list.txt $SOURCEDIR $DESTDIR
목록.txt
reggi.com/assets/dailybooth/img/original/
reggi.com/assets/dailybooth/img/spritesheets/
reggi.com/assets/dailybooth/sprite.css
reggi.com/assets/thumb/cache/
reggi.com/wordpress/wp-content/plugins/
reggi.com/wordpress/wp-content/uploads/
여기서 달성하려는 작업은 목록 디렉터리를 rsync로 다운로드한 다음 목록 디렉터리를 제외한 모든 항목을 업로드하는 것입니다. 두 번째 스크립트는 작동하여 목록 파일을 피했지만 첫 번째 스크립트는 내가 원하는 것을 정확하게 수행하지 못했습니다. **를 디렉토리 끝에 추가하면 사용할 수 있지만 이것이 두 번째 스크립트에서 작동하는지 확실하지 않습니다. 나는 이것을 수행하는 가장 좋은 방법을 찾고 있습니다.
답변1
새로운 rsync 버전(최소 2.6.7)이 있는 경우 reggi.com/assets/dailybooth/img/original/***
rsync list.txt
등을 사용할 수 있습니다. 그러면 두 명령이 모두 작동합니다. 이보다 더 어리석은 방법은 없다고 생각합니다. --prune-empty-dirs
첫 번째 명령에 추가할 수도 있습니다 .
귀하의 일반적인 작업 흐름에 질문이 있습니다. 특정 디렉토리를 한 방향으로 복사하고 나머지는 다른 방향으로 복사하는 것은 다소 이상합니다. 양쪽에 동일한 콘텐츠가 있도록 준비하고 양쪽에 변경 사항이 있을 때 양방향 동기화를 수행하는 것이 좋습니다. 양방향 동기화를 위한 이동 도구는 다음과 같습니다.조화.