Rsync는 /home/*/에서 동일한 디렉토리로 가져옵니다.

Rsync는 /home/*/에서 동일한 디렉토리로 가져옵니다.

다음 명령을 실행하십시오.

/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-dirsrsync가 특정 디렉터리(하위 디렉터리는 아님)의 속성을 복사하려고 시도하는 것을 방지하기 위해 이를 추가할 수 있습니다 . 먼저 -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

관련 정보