rsync를 사용하여 Windows에서 Ubuntu로 파일 전송

rsync를 사용하여 Windows에서 Ubuntu로 파일 전송

Windows에서 rsync 및 cygwin을 사용하여 ssh를 통해 Windows 상자에서 Ubuntu 상자로 파일을 전송하는 데 문제가 있습니다. 파일 전송이 시작되지만 서버 측에 새로 생성된 디렉터리 및 파일은 항상 사용자 권한 없이 생성됩니다. 따라서 디렉터리나 하위 디렉터리에 쓰기를 더 시도하면 rsync에서 많은 "권한 거부(13)" 오류 중 하나가 반환됩니다. 사용해야 하는 올바른 구문은 무엇입니까? 좀 더 명확한 rsyncd.conf 파일이 필요합니까?

Windows 측에서는 다음 명령을 실행합니다.

Patrick@ELWAH P:\Music
> rsync -avz --progress -h ./iTunes [email protected]:/mnt/largemarge

서버 측에서는 다음 권한을 가진 디렉터리를 생성합니다.

patrick@Ceres:/mnt/largemarge$ ll
total 12
drwxr-xr-x 3 patrick patrick 4096 Jul  1 22:16 ./
drwxr-xr-x 3 root    root    4096 Jul  1 20:23 ../
d---rwx--- 5 patrick patrick 4096 Jul  1 21:52 iTunes/
patrick@Ceres:/mnt/largemarge$

Windows의 출력은 다음과 같은 오류로 끝납니다.

Patrick@ELWAH P:\Music
> rsync -avz --progress -h ./iTunes [email protected]:/mnt/largemarge
[email protected]'s password:
sending incremental file list
rsync: recv_generator: mkdir "/mnt/largemarge/iTunes/Album Artwork/Cache" failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
iTunes/Album Artwork/
iTunes/Album Artwork/Cache/
rsync: recv_generator: mkdir "/mnt/largemarge/iTunes/Album Artwork/Cloud Purchases" failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
iTunes/Album Artwork/Cloud Purchases/
rsync: recv_generator: mkdir "/mnt/largemarge/iTunes/Album Artwork/Download" failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
iTunes/Album Artwork/Download/
rsync: recv_generator: mkdir "/mnt/largemarge/iTunes/Album Artwork/Remote" failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
rsync: recv_generator: mkdir "/mnt/largemarge/iTunes/Previous iTunes Libraries" failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
rsync: recv_generator: mkdir "/mnt/largemarge/iTunes/iTunes Media" failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
iTunes/Album Artwork/Remote/
iTunes/Previous iTunes Libraries/
iTunes/iTunes Media/

sent 2.10M bytes  received 13.33K bytes  103.31K bytes/sec
total size is 332.36G  speedup is 156,927.14
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1165) [sender=3.1.1]

답변1

rsync옵션은 -a실제로 (man 페이지에 따르면) aliases 입니다 -rlptgoD. 이 목록 -p의 비트는 "권한을 유지"하는 데 사용됩니다. 즉, rsync는 stat()소스 파일에서 작동하고 권한 비트를 대상 파일에 복사합니다.

Windows에는 Unix 권한이 없으므로 cygwin은 근사치를 제시해야 하며 이는 필연적으로 제한됩니다. 만약 당신이 그냥아니요복사 권한을 요청하면 rsync기본 권한 비트를 사용하여 파일과 디렉터리가 생성되며 문제가 발생하지 않습니다.

유사한 이유로 제외할 수 있는 "보존 그룹"과 "보존 소유자"를 각각 나타 -g냅니다 .-o

따라서 전체 명령은 다음과 같습니다.

rsync -rltvzD --progress -h <source> <destination>

관련 정보