Pour rsync à partir de Windows à Unix/Linux, vous devez fournir une commande comme
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
La commande ssh puis est
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%"
avec backup_excludes.txt contenant des lignes de ignoré des éléments comme
.git
.svn
.o
\Debug
\Release
Alors vous pourrez l'utiliser dans un script avec
%BACKUP% /cygdrive/c/mySensibleData %STORAGEURI%
%BACKUP% /cygdrive/c/myOtherSensibleData %STORAGEURI%
%BACKUP% /cygdrive/c/myOtherSensibleData2 %STORAGEURI%
et ainsi de suite. Cette sauvegarde vos répertoires mySensibleData, myOtherSensibleData et myOtherSensibleData2 avec les permissions 755 pour les dossiers et 644 pour les fichiers. Vous obtenez également les journaux de sauvegarde dans votre %BACKUPLOGFILE% pour chaque sauvegarde.