![Rsync는 /home/*/에서 동일한 디렉토리로 가져옵니다.](https://linux55.com/image/91372/Rsync%EB%8A%94%20%2Fhome%2F*%2F%EC%97%90%EC%84%9C%20%EB%8F%99%EC%9D%BC%ED%95%9C%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EB%A1%9C%20%EA%B0%80%EC%A0%B8%EC%98%B5%EB%8B%88%EB%8B%A4..png)
다음 명령을 실행하십시오.
/usr/bin/rsync -avuz --rsh=ssh --temp-dir=/tmp --port=55556 --rsync-path=/usr/bin/rsync REMOTEIP:/home/*/mail/ /home/*/mail > /var/log/rsync/test.log 2>&1
밝혀지다rsync: mkdir "/home/*/mail" failed: No such file or directory (2)
리터럴 대신 사용자 이름을 얻기 위해 로컬 확장 경로를 사용할 수 있습니까 *
?
모든 홈 디렉토리에서 메일 디렉토리를 추출하고 싶습니다.
답변1
대상 디렉터리는 하나만 가질 수 있습니다. 귀하의 경우 공통 목표는 /home
또는 입니다 /
. 따라서 로컬 대상에서 원격 경로를 복사하려면 -R
(long version --relative
) 옵션을 사용하십시오.
... --relative REMOTEIP:/home/*/mail/ /
--no-implied-dirs
rsync가 특정 디렉터리(하위 디렉터리는 아님)의 속성을 복사하려고 시도하는 것을 방지하기 위해 이를 추가할 수 있습니다 . 먼저 -n
이것이 예상한 대로 작동하는지 확인하세요.
답변2
다음 방법으로도 이를 달성할 수 있지만 meuh의 방법이 더 깔끔합니다.
/usr/bin/rsync -avuz --rsh=ssh --temp-dir=/tmp --port=55556 --include='*/mail' --include='*/mail/**' --exclude='*/*' --rsync-path=/usr/bin/rsync REMOTEIP:/home/ /home > /var/log/rsync/test.log 2>&1