Nous allons voir dans cet article comment mettre en place une sauvegarde automatique de votre serveur sur un serveur distant avec Rsync.
Créer un utilisateur sur le serveur distant
Connectez-vous sur le serveur distant et créer un nouvel utilisateur, par exemple « rsync_user ».
sudo adduser rsync_user
Modifier les permissions de façon à ce qu’il ait uniquement accès aux répertoires nécessaires.
sudo mkdir -p /path/to/allowed/directory
sudo chown rsync_user:rsync_user /path/to/allowed/directory
Si nécessaire, interdisez les connexions interactives pour cet utilisateur :
sudo usermod -s /bin/false rsync_user
Configurez ensuite l’authentification par clé ssh et copier la clé publique sur le serveur distant.
Vous pouvez tester la connexion SSH avec la commande suivante : ssh -i ~/.ssh/id_rsa_rsync rsync_user@remote-server
Si tout est bien configuré, vous n’aurez pas besoin de saisir de mot de passe et vous pouvez passer à la suite.
Synchroniser les données via Rsync en ssh
La commande suivante permet de réaliser la sauvegarde en SSH :
rsync -avhz --delete --progress --log-file=rsync.log -e "ssh -i /home/rsync_user/.ssh/id_rsa_rsync" /chemin/repertoire/source/ rsync_user@[IP Serveur distant]:/chemin/repertoire/destination/
Descriptif des options utilisées :
- -h : human-readable -> Les nombres dans les messages de sortie sont dans un format compréhensible par des humains
- –progress : montre le progrès du transfert en cours
- -a : mode archive
- -v : augmente la verbosité
- –delete : si des fichiers sont supprimés sur la source, ils seront supprimés également sur la destination
- –log-file : ajoute un fichier de log