para mac descargar deltacopy windows rsync

mac - Rsync en Windows: permisos incorrectos para directorios creados



robocopy (6)

Además, puede intentar crear una variable de entorno (global) CYGWIN y establecer su valor en nontsec

Estoy intentando enviar cambios a mi servidor a través de ssh en Windows (cygwin) usando rsync . El comando que estoy usando es:

rsync -rvz -e ssh / cygdrive / c / myfolder / [email protected]: / srv / www / prj112 / myfolder /

/srv/www/prj112/myfolder/ es propiedad de rsyncuser . Mi problema es que si bien con rsync los subdirectorios se crean a medida que se publican, a cada directorio se le asigna un permiso predeterminado de d--------- para que rsync no pueda copiar ningún archivo dentro de él.

¿Cómo puedo solucionar esto?


Cygwin rsync informará el permiso denegado cuando algún proceso tenga el archivo de destino abierto. Descargue y ejecute Process Explorer y descubra si algo más está bloqueando el archivo o simplemente intente cambiar el nombre del archivo y vea si obtiene el error de Windows sobre algún otro proceso que tenga el archivo abierto.


La opción para ignorar los permisos NTFS ha cambiado en Cygwin versión 1.7. Esto podría ser lo que está causando el problema.

Intente agregar el indicador ''noacl'' a sus montajes Cygwin en C: / cygwin / etc / fstab, por ejemplo:

none /cygdrive cygdrive user,noacl,posix=0 0 0

Puede pasar permisos personalizados a través de rsync usando la opción ''chmod'':

rsync -rvz --chmod=ugo=rwX -e ssh source destination


Para sincronizar desde Windows a Unix / Linux, debe proporcionar un comando como

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

El comando ssh es entonces

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%"

con backup_excludes.txt que contiene líneas de elementos ignorados como

.git .svn .o /Debug /Release

Entonces usarías esto en un script con

%BACKUP% /cygdrive/c/mySensibleData %STORAGEURI% %BACKUP% /cygdrive/c/myOtherSensibleData %STORAGEURI% %BACKUP% /cygdrive/c/myOtherSensibleData2 %STORAGEURI%

y así. Esto hará una copia de seguridad de sus directorios mySensibleData , myOtherSensibleData y myOtherSensibleData2 con los permisos 755 para directorios y 644 para archivos. También obtiene registros de copia de seguridad en su % BACKUPLOGFILE% para cada copia de seguridad.


Su problema proviene del hecho de que los permisos de Unix en ese directorio son realmente 0. Toda la información de acceso se almacena en ACL separadas, que rsync no copia. Por lo tanto, establece los permisos de la copia remota en 0 y, obviamente, no puede escribir en ese directorio posteriormente. Tu puedes correr

chmod -R 775

en ese directorio, que debería arreglar su problema de rsync.

Después de echar un vistazo a la página de manual, puedo decir que el parámetro chmod está disponible en rsync desde la versión ~ 2.6.8. Pero tienes que usar --chmod=ugo=rwX en combinación con rsync -av

También deberías probar este comando:

rsync -av <SOURCE_DIR> [email protected]:/srv/www/prj112/myfolder

Funcionaría en Linux al menos. Y tenga en cuenta que rsync no necesita mencionar ssh, al menos en Linux.

Pero si todo falla y solo para dar una opción, puede echar un vistazo a esta herramienta lista para empaquetar cwRsync


si despliega un sitio desde Windows (por ejemplo, octopress use rsync) es posible establecer el permiso para 775 agregar múltiples comandos chmod:

rsync -avz --chmod=ug=rwx --chmod=o=rx -e ssh