NTFS 권한을 무시하는 옵션은 Cygwin 버전 1.7에서 변경되었습니다. 이것이 문제의 원인 일 수 있습니다.
C : \ cygwin \ etc \ fstab의 Cygwin 마운트에 'noacl'플래그를 추가해보십시오. 예를 들면 다음과 같습니다.
none /cygdrive cygdrive user,noacl,posix=0 0 0
'chmod'옵션을 사용하여 rsync를 통해 사용자 지정 권한을 전달할 수 있습니다.
rsync -rvz --chmod=ugo=rwX -e ssh source destination
-------------------문제는 해당 디렉토리에 대한 Unix 권한이 실제로 0이라는 사실에서 비롯됩니다. 모든 액세스 정보는 rsync가 복사하지 않는 별도의 ACL에 저장됩니다. 따라서 원격 사본에 대한 권한을 0으로 설정하고 분명히 나중에 해당 디렉토리에 쓸 수 없습니다. 당신은 실행할 수 있습니다
chmod -R 775
rsync 문제를 해결해야합니다.
맨 페이지를 살펴보면 버전 ~ 2.6.8부터 rsync에서 chmod 매개 변수를 사용할 수 있음을 알 수 있습니다. 하지만 다음 --chmod=ugo=rwX
과 함께 사용해야합니다 .rsync -av
다음 명령도 시도해야합니다.
rsync -av <SOURCE_DIR> rsyncuser@192.168.1.110:/srv/www/prj112/myfolder
적어도 Linux에서 작동합니다. 그리고 rsync는 적어도 Linux에서는 ssh를 언급 할 필요가 없습니다.
그러나 모든 것이 실패하고 옵션을 제공하기 위해 준비된이 포장 된 도구 cwRsync를 살펴볼 수 있습니다.
-------------------Windows에서 사이트를 배포하는 경우 (예 : octopress 사용 rsync) 여러 chmod 명령을 추가하여 권한을 775로 설정할 수 있습니다.
rsync -avz --chmod=ug=rwx --chmod=o=rx -e ssh
-------------------Windows에서 Unix / Linux로 재 동기화하려면 다음과 같은 명령을 제공해야합니다.
SET BACKUP_SERVER=my.backup.server
SET SSH_USER=theUnixUserName
SET STORAGEPATH=/home/%SSH_USER%/Backup/
SET STORAGEURI=%BACKUP_SERVER%:%STORAGEPATH%
SET SSH_ID=/cygdrive/c/Users/theWindowsUserName/Documents/keyfiles/id_dsa
SET EXCLUDEFILE=backup_excludes.txt
SET BACKUPLOGFILE=/cygdrive/c/Users/theWindowsUserName/Backuplogs/backup-%DATE%-%TIME::=-%.log
ssh 명령은 다음과 같습니다.
SET BACKUP=rsync -azvu --chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r --rsh="ssh -l %SSH_USER% -i '%SSH_ID%'" --exclude-from=%EXCLUDEFILE% --delete --delete-excluded --log-file="%BACKUPLOGFILE%"
다음과 같은 무시 된 요소의 행을 포함하는 backup_excludes.txt
.git
.svn
.o
\Debug
\Release
그런 다음 스크립트에서 이것을 사용합니다.
%BACKUP% /cygdrive/c/mySensibleData %STORAGEURI%
%BACKUP% /cygdrive/c/myOtherSensibleData %STORAGEURI%
%BACKUP% /cygdrive/c/myOtherSensibleData2 %STORAGEURI%
등등. 그러면 디렉토리 에 대한 권한 755 및 파일에 대한 권한이있는 mySensibleData , myOtherSensibleData 및 myOtherSensibleData2 디렉토리가 백업됩니다 . 또한 각 백업에 대한 % BACKUPLOGFILE % 에서 백업 로그를 얻습니다 .
-------------------Cygwin rsync는 일부 프로세스에서 대상 파일이 열려있을 때 거부 된 권한을보고합니다. Process Explorer를 다운로드하여 실행하고 다른 것이 파일을 잠그고 있는지 확인하거나 파일 이름을 바꾸고 파일이 열려있는 다른 프로세스에 대한 Windows 오류가 발생하는지 확인하십시오.
-------------------또한 (전역) 환경 변수를 CYGWIN
만들고 그 값을 다음과 같이 설정할 수 있습니다.nontsec
출처
https://stackoverflow.com/questions/22080005