2011-10-16 3 views
3

저는 rsync를 처음 사용하고 파일과 디렉토리를 제외시키는 것에 대해 조금 읽었지만 완전히 이해하지 못하고 작동하지 않는 것처럼 보입니다.rsync에서 cache라는 디렉토리를 제외시키는 방법은 무엇입니까?

저는 서버의 웹 루트에있는 모든 웹 사이트의 백업을 실행하려고하지만 CMS의 캐시 파일은 원하지 않습니다.

캐시라는 디렉토리를 제외 할 곳이 있습니까?

나는 (내가 기억하지 않는 것이) 몇 주 동안 많은 것들을 시도했지만, 최근에 나는 사물의 이러한 종류의 시도를하고 있어요 :

sudo rsync -avzO -e --exclude *cache ssh [email protected]:/home/ /Users/username/webserver-backups/DEV/home/ 

이 :

sudo rsync -avzO -e --exclude cache/ ssh [email protected]:/home/ /Users/username/webserver-backups/DEV/home/ 

이 :

sudo rsync -avzO -e --exclude */cache/ ssh [email protected]:/home/ /Users/username/webserver-backups/DEV/home/ 

을이 :

sudo rsync -avzO -e --exclude *cache/ ssh [email protected]:/home/ /Users/username/webserver-backups/DEV/home/ 

죄송합니다. 쉽지 않으면 제외 할 경로에 대해 이야기하기 때문에 이해할 수있는 정보를 찾을 수 없었습니다.

내가 제외하고 싶은 특정 경로가 없다는 것입니다. 의미가 있다면 그냥 디렉토리 이름입니다.

답변

8
rsync --exclude cache/ .... 

은 복숭아처럼 작동해야합니다. -e에 옵션이 필요하기 때문에 (예 : -e "ssh -l ssh-user") 몇 가지를 혼동시킬 수 있습니다. 을 편집하여 명령 줄을 조금 더 자세히 살펴보면 문제가 정확하게 발생합니다. SSH가 기본이기 때문에 그냥 -e ssh 드롭 수 있지만 당신은

--exclude cache/ -e ssh 

을 말했다한다.


나는 또한 당신이 필터 규칙을보고하는 것이 좋습니다 것 :

rsync -FF .... 

당신이 당신의 디렉토리 트리에 걸쳐 .rsync 필터 파일을 포함 할 수 있습니다 그 방법을

-cache/ 
같은 것들을 포함

이렇게하면 명령 줄을 더 쉽게 읽을 수 있고 특정 하위 트리 내에서 예외를 만들 수있는 더 유연 해집니다.

+0

고마워요. 테스트를 위해 -e 옵션을 제거하고 캐시를 시도했습니다/이와 같이 sudo rsync -avzO --exclude cache/ssh [email protected] :/home// Users/username/webserver-backups/LIVE/home /' cache/rsync의 후행 슬래시 때문에 ssh가 디렉토리라고 생각하고 다음과 같은 오류가 발생합니다. '/ Users/username/ssh failed : 해당 파일이나 디렉토리가 없습니다. ' – CMSCSS

+0

@CMSCSS : 바로 거기에 문제가있다. '-e'와'ssh'를 분리하지 마십시오. 내가 말했듯이, ssh는'-e'와 함께 간다. 쉘이'ssh' 일 때, 기본값 인'-e ssh' 옵션을 없앨 수 있습니다. – sehe

+0

OK 고마워요 - 이제 이해합니다!이제 sudo rsync -avzO -e "ssh -l remote-username"--exclude cache/11.22.33.44:/home//Users/local-username/webserver-backups/DEV/home /'건배! – CMSCSS

관련 문제