MyTnyBx

My Tiny Box

How to enable server-side logging when using rsync over ssh

21/10/2009 à 12:06:19 - Aucun commentaire

As rsyncd, the rsync daemon, only supports encryption for authentication, and not for the file-transfer itself, it might be a good idea to switch to rsync over ssh, especially when rsync-ing over the Internet.

But there's a drawback : you cannot enable server-side logging directly from the server, as you would do with the rsyncd daemon.

Here's a workaround for enabling server-side logging from the rsync client :

rsync -av --rsync-path="rsync --log-file=/tmp/rsync.log" -e ssh user@host:/remote_dir local_dir

But it turned out that there is a way to enable server-side logging from the server, even if it does not seem to be well-documented. You can create an rsyncd.conf file in the home directory of the user used for ssh. Here's the one I use :

id file = /home/user/var/run/rsyncd.pid
log file = /home/user/log/rsync.log
lock file = /home/user/var/run/rsync.lock
uid = user
gid = user
use chroot = no
max connections = 4
transfer logging = true

[export_name]
comment = export_name
path = /mnt/disk/dir
read only = yes
list = no
hosts allow = ip_address

You can then rsync this way :

rsync -av -e ssh user@host::export_name local_dir

Note : specifying the ssh port to use is done this way:

rsync -av -e 'ssh -p port' user@host::export_name local_dir

rsync, ssh

Synchroniser des données depuis un serveur rsync sous linux vers une machine windows avec cwRsync

15/01/2009 à 12:23:59 - Aucun commentaire

Je possède des données sur un serveur doté d'un daemon rsync sous linux. Je souhaite synchroniser ces données vers un poste sous Windows, à la demande de cette machine windows.

Comment faire ?

Je me suis d'abord tourné vers DeltaCopy, qui fait office de client rsync graphique sous windows. Cependant, d'après ce que j'ai pu lire, celui-ci, en temps que client, gère le fait d'envoyer des données sur un serveur rsync, pas de les recevoir (ou alors je n'ai pas trouvé comment, l'interface n'étant pas très ergonomique).

J'ai ensuite considéré l'option DeltaCopy server, mais dans ce cas-là, il me semble que c'est la machine linux qui doit initier le transfert, ce qui ne convient pas à ce que je cherchais.

J'ai vu un certain nombre de cas couverts sur le web, mais pas celui qui m'intéressait.

Solution : installer cwRsync !

Il s'agit d'un package rsync pour windows (qui embarque des dll cygwin). Une fois cwRsync téléchargé et installé, on édite le fichier cwrsync.cmd

Celui-ci initialise les variables d'environnement nécessaires au fonctionnement du programme, et propose quelques exemples. On rajoute, pour le cas qui nous intéresse, à la fin du fichier :

rsync -av [--delete] rsync://user@host/rep /cygdrive/c/rep

Notez bien les points suivants :
* Il est nécessaire de préciser le user. Dans mon cas, avec un même nom d'utilisateur sous windows et sous linux, l'authentification ne passait pas.
* Pensez bien à préciser le répertoire local sous la forme /cygdrive/lettre_de_lecteur. C:\ par exemple ne passera pas.

Et voilà, vous pouvez lancer la synchronisation en double-cliquant sur ce fichier !

rsync