Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/08/2007, à 11:34

Jike

[Réglé] Rsync/cwRsync et les carractères avec accents

J'ai rencontré un problème avec Rsync et les noms de fichiers comprenant des caractères accentués lors de la synchronisation de machines Windows vers un serveur Linux.

Mon serveur de sauvegarde est sous Ubuntu Serveur sur lequel tourne un serveur Rsync et j'ai des machines sous Windows.

Lors des sauvegardes des machines Windows vers Linux, les caractères accentués étaient remplacés par des '_' (Ex. &éèçàûüttttt------.txt devenait &______ttttt------.txt)... Pas cool !!! Problème d'UTF-8 avec Windows.

La solution est venue du site cwRsync dans lequel on apprend qu'un japonnais propose des versions patchées de cygwin1.dll pour justement régler ce problème de caractères accentués Windows et d'UTF-8.

Dans un premier temps, il faut regarder quelle version de cygwin1.dll (Dans c:\Programm Files\cwRsync\bin) vous avez : Click droit sur le fichier puis 'Propriétés > Version > BuildDate.

Ensuite, rendez-vous sur le site Japonnais http://www.okisoft.co.jp/esc/utf8-cygwin/download.html et téléchargez la version de cygwin.dll avec la même date 'BuildDate' que votre version actuelle.

En ce qui me concerne, j'ai la '2006-07-30'. J'ai donc pris sur le site la cygwin1-dll-07-25.tar.bz2, j'ai pas trouvé plus proche...

Décompresser l'archive pour récupérer la dll.

Faites une copie de votre cygwin1.dll d'origine (La dll patchée ne fonctionne pas pour une syncro Windows - Windows, il est préférable de la garder dans un coin) et mettez à la place celle que vous avez téléchargée.

Lancer ensuite la sauvegarde normalement. Les fichiers avec accents sont maintenant correctement synchronisés de Windows vers le serveur Linux.

Dernière modification par Jike (Le 20/08/2007, à 14:41)

Hors ligne

#2 Le 22/08/2007, à 20:48

bud35000

Re : [Réglé] Rsync/cwRsync et les carractères avec accents

Bonjour,

Je n'arrive pas à faire fonctionner CWRsync.
En fait j'ai du mal à cibler le fonctionnement.

J'ai une machine Windows dans laquelle se trouve un répertoire que je veux sauvegarder sur ma Debian.
J'ai donc installer

aptitude install rsync

sur la debian et cwrsync sur la Windows.

Ensuite j'ai créé un ptit batch :

rsync -a --verbose --progress --delete --exclude="System Volume Information" --exclude="Recycled" /cygdrive/D/Album Photos/ /cygdrive/Z/Backup/

que j'ai mis sur le bureau du Windows. Est-ce bien cela ou c'est sur la Debian que je dois le mettre.

Je me suis inspiré de cet exemple: http://www.exhaustif.com/backup_avec_rs … 6.art.html

Quand je lance ce .bat , rien ne se passe mais c'est un peu flou pour moi tout ça... J'ai sûrement oublié des tonnes de trucs...

Y a-t-il des version serveur et client de ce soft?? et pour mon besoin, lesquelles dois-je installer sur quelles machine?

Merci. Et bravo pour ton .dll et tes explication, ça me servira certainement pour la suite... wink

#3 Le 25/08/2007, à 08:28

Jike

Re : [Réglé] Rsync/cwRsync et les carractères avec accents

Salut,

Sur Windows, tu ne dois pas créer ton propre .bat mais plutot partir sur la base de l'exemple donné avec cwRsync qui se trouve dans le répertoire d'installation de cwRsync (cwrsync.cmd).

Il contient, au début, les directives nécessaires pour lancer cwRsync dans l'environnement Windows.

Donc, si tu as fait l'installation normale de cwRsync et que celui-ci se trouve dans c:\Program Files\cwRsync, voici ce qu'il faut mettre au début de ton fichier .cmd pour lancer la sauvegarde (J'ai viré les commentaires du fichier d'exemple pour plus de clarté) :

@ECHO OFF
REM *****************************************************************
REM
REM CWRSYNC.CMD - Batch file template to start your rsync command (s).
REM
REM By Tevfik K. (http://itefix.no)
REM *****************************************************************


SETLOCAL
SET CWRSYNCHOME=C:\PROGRAM FILES\CWRSYNC
SET CYGWIN=nontsec
SET HOME=%HOMEDRIVE%%HOMEPATH%
SET CWOLDPATH=%PATH%
SET PATH=%CWRSYNCHOME%\BIN;%PATH%

REM =========== PERSONNALISATION ===========

Ajoute tes lignes de commande de Rsync après 'PERSONNALISATION', par exemple ta ligne rsync -a --verbose --progress --delete --exclude="System Volume Information" --exclude="Recycled" /cygdrive/D/Album Photos/ /cygdrive/Z/Backup/

Là, ça devrait marcher quand tu lances ton .cmd pour la sauvegarde.

L'emplacement de ton fichier .cmd pour lancer la sauvegarde n'a pas d'importance. Tu peux le garder sur ton bureau ou dans 'Mes Documents', ça n'a pas d'importance.

Autre chose : Il est préférable de mettre des guillemets " pour les chemins, c'est plus sûr : rsync -a --verbose --progress --delete --exclude="System Volume Information" --exclude="Recycled" "/cygdrive/D/Album Photos/" "/cygdrive/Z/Backup/"

Dernière modification par Jike (Le 26/08/2007, à 09:27)

Hors ligne

#4 Le 01/09/2007, à 00:55

bud35000

Re : [Réglé] Rsync/cwRsync et les carractères avec accents

YESSS

ça marche !!

Merci beaucoup.
En plus j'avais des problèmes de droits. Depuis j'ai créé un groupe et utilisateur rsync.
J'ai enfin compris que ce fichier d'exemple servait en même temps de fichier bat et qu'il fallait bien sûr un serveur pour recevoir le tout. Bref j'y était pas du tout au départ mais tu m'a bcp éclairé et maintenant ça va.
En plus tu as répondu à une autre de mes question sans le savoir :
C'est que j'avais un souci pour indiquer le chemin de Application Data entre autre et tous ceux qui comportent un espace dans Windows et en mettant les guillemets ça marche parfaitement !!

Merci beaucoup !!

Je propose mon fichier de config (qui fonctionne maintenant smile )à titre d'exemple si ça peut servir à quelqu'un :
En gros, je fait une sauvegarde de mes photos, musique, fichiers Mozilla et Firefox depuis une machine Windows vers une machine Debian avec un p'tit log où est marqué date/heure de début et de fin de sauvegarde. Il y a aussi un p'tit nettoyage automatique des fichiers système.

@ECHO OFF
REM *****************************************************************
REM
REM CWRSYNC.CMD - Batch file template to start your rsync command (s).
REM
REM By Tevfik K. (http://itefix.no)
REM *****************************************************************


SETLOCAL
SET CWRSYNCHOME=C:\PROGRAM FILES\CWRSYNC
SET CYGWIN=nontsec
SET HOME=%HOMEDRIVE%%HOMEPATH%
SET CWOLDPATH=%PATH%
SET PATH=%CWRSYNCHOME%\BIN;%PATH%

REM =========== PERSONNALISATION ===========


del C:\docume~1\ben\Applic~1\Micros~1\Office\Récent\*.*
del C:\docume~1\ben\locals~1\Temp\*.*
del C:\docume~1\ben\locals~1\tempor~1\*.*
del C:\docume~1\ben\locals~1\histor~1\*.*
del C:\docume~1\ben\Recent\*.*
del c:\docume~1\ben\cookies\*.*
del c:\windows\temp\*.*
del c:\windows\prefetch\*.*



echo --------------------------------------
echo ++  Lancement de la sauvegarde ++
echo --------------------------------------
echo %date%  %time%
echo ----------------------------------------------------  >> "C:\Program Files\cwRsync\log_rsync.txt"
echo Debut de la sauvegarde de Musique : %date%  %time%  >> "C:\Program Files\cwRsync\log_rsync.txt"
echo --------------------------------------


echo == Musique ==
rsync -azc --verbose --progress --delete --exclude="System Volume Information" --exclude="Recycled" "/cygdrive/D/Media/Musique/" 192.168.1.8::Backup/Backup/Musique/

echo Debut de la sauvegarde de Album photo : %date%  %time%  >> C:\log_rsync.txt

echo = Album Photo ==
rsync -azc --verbose --progress --dry-run --exclude="System Volume Information" --exclude="Recycled" "/cygdrive/D/Album_Photos" 192.168.1.8::Backup/Backup/


echo Debut de la sauvegarde de Autres : %date%  %time%  >> "C:\log_rsync.txt"

echo = Autres ==

rsync -azc --verbose --progress --delete "/cygdrive/C/Documents and Settings/ben/Application Data/Mozilla" "/cygdrive/C/Documents and Settings/ben/Application Data/Thunderbird" 192.168.1.8::Backup/Backup/


echo --------------------------------------
echo ++  Sauvegarde terminee ++"   
date/t
time/t
echo %date%  %time%
echo Fin de la sauvegarde : %date%  %time%  >> "C:\Program Files\cwRsync\log_rsync.txt"
echo --------------------------------------
pause


Je m'excuse d'avance pour ce script et ce sujet qui est bien Windowsien... je viens au libre mais par étape...

#5 Le 01/09/2007, à 10:03

Jike

Re : [Réglé] Rsync/cwRsync et les carractères avec accents

De rien ! C'est toujours un plaisir de chercher/trouver une astuce quelque soit le systeme.

A propos, dans ton script, tu utilise souvent les memes choses.

Par exemple, la commande de cwRsync contient toujours rsync -azc --verbose --progress

Donc, ajoute au début du script SET CWRSYNC_BASE=rsync -azc --verbose --progress

Ensuite, tu l'utilise dans les commandes, par exemple :

echo == Musique ==
%CWRSYNC_BASE% --delete --exclude="System Volume Information" --exclude="Recycled" "/cygdrive/D/Media/Musique/" 192.168.1.8::Backup/Backup/Musique/

De cette manière, c'est plus clair et si tu change quelque chose dans ta sauvegarde, tu ne le fait que sur une seule ligne.

Pour la destination de la sauvegarde, c'est très intéressant aussi si tu dois subitement la changer pour une raison ou une autre :

SET BACKUP_DEST=192.168.1.8::Backup/Backup/

Et ensuite, pour reprendre l'exemple précédent :

echo == Musique ==
%CWRSYNC_BASE% --delete --exclude="System Volume Information" --exclude="Recycled" "/cygdrive/D/Media/Musique/" %BACKUP_DEST%

Dernière modification par Jike (Le 01/09/2007, à 10:16)

Hors ligne

#6 Le 13/09/2007, à 00:13

bud35000

Re : [Réglé] Rsync/cwRsync et les carractères avec accents

Wouawww trop trop bien !!

Merci d'une part pour toutes les étapes décrites concernant le patch sur les accents. J'ai suivi ta démarche et en 2 minutes ça a marché !

Merci d'autre part pour le truc des variables. Très utile et très pratique aussi.

J'ai mis un peu de temps à instauré cette solution de sauvegarde mais quand on goute à rsync on ne peut plus s'en séparer. smile
L'utilisation multi plateforme est très intéressante.

#7 Le 13/09/2007, à 08:20

Jike

Re : [Réglé] Rsync/cwRsync et les carractères avec accents

De rien !!

C'est vrai que Rsync est un très bon soft.

J'ai toujours ce qu'il faut pour l'installer sur ma clé USB !

Hors ligne

#8 Le 15/03/2008, à 17:11

mimidatabase

Re : [Réglé] Rsync/cwRsync et les carractères avec accents

Merci à tous smile

La clarté et la précision de vos réponses m'ont permis de mettre en place une synchronisation entre mes postes Windows et mon Ubuntu Server smile

Bonne continuation @ vous wink

Hors ligne

#9 Le 10/04/2011, à 13:04

cineman

Re : [Réglé] Rsync/cwRsync et les carractères avec accents

Pour mémoire, je vous donne mon fichier MSDOS .BAT pour utiliser CWRSYNC:

@ECHO OFF
REM *****************************************************************
REM
REM CWRSYNC.CMD - Batch file template to start your rsync command (s).
REM
REM By Tevfik K. (http://itefix.no)
REM *****************************************************************

REM Make environment variable changes local to this batch file
SETLOCAL

REM ---------------------------------------------
REM Début des ajouts.
REM ---------------------------------------------

REM La variable "PROGRAMFILES" représente le chemin vers le répertoire qui contient le sommet de l'arborescence sous laquelle sont installés les fichiers du logiciel "CWRSYNC".
REM Exemple:
REM   Chez moi CWRSYNC est installé sous le répertoire "C:\Program Files (x86)\cwRsync".
REM   Donc: PROGRAMFILES=C:\Program Files (x86)\
SET PROGRAMFILES=C:\Program Files (x86)\

REM Vous devez choisir un répertoire, sur votre machine Windows, dans lequel CWRSYNC va déposer des fichiers.
REM Exemple:
REM   J'ai choisi, arbitrairement, le répertoire "C:\Users\Denis\Desktop\Applications\Reseau\cwrsync".
SET HOMEDRIVE=C:
SET HOMEPATH=\Users\Denis\Desktop\Applications\Reseau\cwrsync

REM Si vous utilisez une clé privée pour la connexion vers le serveur que vous désirez mettre à jour, indiquez le chemin vers cette clé privée.
REM REMARQUE 1: Cette configuration est optionnelle.
REM Si vous n'utilisez pas de clé privée, vous pouvez, au choix:
REM    Laissez simplement cette variable vide (SET PRIVATE_SSH_KEY=).
REM    OU Commenter la ligne (REM SET PRIVATE_SSH_KEY=/cygdrive/c/Users/Denis/Desktop/Applications/Reseau/ssh/denis@torpedo-open_ssh).
REM REMARQUE 2: Le format de cette clé est "Open SHH" (et non "Pageant").
SET PRIVATE_SSH_KEY=/cygdrive/c/Users/Denis/Desktop/Applications/Reseau/ssh/denis@torpedo-open_ssh

REM ---------------------------------------------
REM Fin des ajouts.
REM ---------------------------------------------

REM ** CUSTOMIZE ** Specify where to find rsync and related files (C:\CWRSYNC)
SET CWRSYNCHOME=%PROGRAMFILES%\CWRSYNC

REM Set HOME variable to your windows home directory. That makes sure
REM that ssh command creates known_hosts in a directory you have access.
SET HOME=%HOMEDRIVE%%HOMEPATH%

REM Make cwRsync home as a part of system PATH to find required DLLs
SET CWOLDPATH=%PATH%
SET PATH=%CWRSYNCHOME%\BIN;%PATH%

ECHO %PATH%

REM Windows paths may contain a colon (:) as a part of drive designation and
REM backslashes (example c:\, g:\). However, in rsync syntax, a colon in a
REM path means searching for a remote host. Solution: use absolute path 'a la unix',
REM replace backslashes (\) with slashes (/) and put -/cygdrive/- in front of the
REM drive letter:
REM
REM Example : C:\WORK\* --> /cygdrive/c/work/*
REM
REM Example 1 - rsync recursively to a unix server with an openssh server :
REM
REM       rsync -r /cygdrive/c/work/ remotehost:/home/user/work/
REM
REM Example 2 - Local rsync recursively
REM
REM       rsync -r /cygdrive/c/work/ /cygdrive/d/work/doc/
REM
REM Example 3 - rsync to an rsync server recursively :
REM    (Double colons?? YES!!)
REM
REM       rsync -r /cygdrive/c/doc/ remotehost::module/doc
REM
REM Rsync is a very powerful tool. Please look at documentation for other options.
REM
REM ** CUSTOMIZE ** Enter your rsync command(s) here

SET status=TODO
IF DEFINED PRIVATE_SSH_KEY (
    IF NOT "%PRIVATE_SSH_KEY%"=="" (
        echo "Using private Open SSH key"
        rsync -rc --delete -e "ssh -i %PRIVATE_SSH_KEY%" /cygdrive/c/Users/Denis/Desktop/testrsync/ denis@192.168.1.1:/tmp/test1
        SET status=DONE
    )
)

IF "%status%"=="TODO" (
    rsync -rc --delete /cygdrive/c/Users/Denis/Desktop/testrsync/ denis@192.168.1.1:/tmp/test1
)

ECHO Opération terminée.
pause




Voilà, ça peut aider.

A+

Hors ligne

#10 Le 15/05/2011, à 16:26

titimoi

Re : [Réglé] Rsync/cwRsync et les carractères avec accents

Merci beaucoup ça m'a aidé aussi smile

Hors ligne