Synchro distante automatique via un daemon rsync sur Ubuntu
Par NiKo le jeudi 18 janvier 2007, 16:26 - Ubuntu - Lien permanent
Et non ! Rsync n'est pas une voiture des années 90 mais bien un outil de synchronisation de fichiers à distance très puissant. Il peut notamment tourner en daemon afin d'autoriser les appels distants automatiques, via Cron par exemple.
Si par un hasard hallucinant vous ne disposiez pas de rsync sur votre Ubuntu, voici la démarche à suivre pour l'installer en ligne de commande :
$ sudo apt-get install rsync
Bien. Nous disposons de deux machines, la machine A - disposant d'un utilisateur jeanpierre - et la machine B - habitée par edmond. Nous devons automatiser la synchro d'un répertoire présent sur la machine A vers la machine B. On va donc installer un daemon rsync sur la machine A et le configurer en créant le fichier /etc/rsyncd.conf :
uid = jeanpierre gid = jeanpierre use chroot = no max connections = 4 syslog facility = local5 pid file = /var/run/rsyncd.pid [mon_partage] comment = Mon partage path = /home/jeanpierre/monpartage read only = yes list = yes hosts allow = * auth users = edmond, gerard secrets file = /etc/rsyncd.secrets
Je vous renvoie à cette page sur la syntaxe du fichier rsync.conf pour plus de renseignements.
On crée un fichier process vide :
jeanpierre@machineA:~$ sudo touch /var/run/rsyncd.pid
Les comptes utilisateurs se définissent dans le fichier /etc/rsyncd.secrets sous la traditionnelle forme login:motdepasse comme ci-dessous :
edmond:3dm0nd gerard:g3r4rd
Par souci de sécurité et de confidentialité, ces fichiers ne devront pas être lisibles par un autre utilisateur que le root, donc :
jeanpierre@machineA:~$ sudo chmod 640 /etc/rsyncd.conf jeanpierre@machineA:~$ sudo chmod 640 /etc/rsyncd.secrets
Lancer rsync en daemon sur la machine A (machinea.domain.tld) :
jeanpierre@machineA:~$ sudo rsync --daemon
Et depuis la machine B (machineb.domain.tld) :
edmond@machineB:~$ rsync -avz edmond@machinea.domain.tld::mon_partage ~/mon/repertoire/cible
La saisie du password de l'utilisateur edmond défini précedemment lancera la synchronisation effective des fichiers. Pour éviter la saisie manuelle du password, il faut envisager d'utiliser l'option --password-file=FILE. Pour se faire, il faut créer un fichier contenant juste le mot de passe en clair, par exemple dans /home/edmond/.rsync_passwd comme ceci :
3dm0nd
Ce fichier devra n'être accessible que par l'utilisateur système utilisant la commande rsync. Dans le cas de l'utilisateur connecté à la machine B :
edmond@machineB:~$ chmod 640 /home/edmond/.rsync_passwd
On peut alors lancer une synchro de cette façon :
edmond@machineB:~$ rsync -avz edmond@machinea.domain.tld::mon_partage ~/mon/repertoire/cible --password-file=/home/edmond/.rsync_passwd
L'avantage de cette ligne de commande est qu'elle peut être appellée depuis un Cron et donc ne pas nécessiter de saisie du mot de passe manuellement.
Enfin, sachez que les éventuelles erreurs d'authentification seront logguées dans le fichier /var/log/syslog.



















Commentaires
1. Le jeudi 18 janvier 2007, 21:16 par THomas
2. Le jeudi 18 janvier 2007, 21:24 par giz404
3. Le jeudi 18 janvier 2007, 21:26 par NiCoS
4. Le jeudi 18 janvier 2007, 21:58 par splitsch
5. Le vendredi 19 janvier 2007, 15:35 par Gameplayer
6. Le vendredi 19 janvier 2007, 20:03 par Kagou
7. Le samedi 20 janvier 2007, 09:13 par Klamouze
8. Le samedi 20 janvier 2007, 20:33 par byzmut
9. Le samedi 20 janvier 2007, 21:16 par NiKo
10. Le samedi 20 janvier 2007, 22:03 par byzmut
11. Le mardi 23 janvier 2007, 01:09 par Klamouze
12. Le mardi 23 janvier 2007, 08:03 par NiKo
13. Le mardi 23 janvier 2007, 19:31 par Klamouze