다음 명령을 실행하십시오.
/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