Automatiser la Synchronisation entre Deux Serveurs avec rsync et SSH
Voici un tutoriel détaillé pour configurer l'authentification par clé SSH entre deux machines et programmer une copie hebdomadaire avec rsync. Nous allons appeler la machine locale "Machine A" et la machine distante "Machine B".
Étape 1 : Générer une paire de clés SSH sur la Machine A
-
Connectez-vous à la Machine A :
Ouvrez un terminal sur la Machine A.
-
Générez une paire de clés SSH :
Utilisez la commande suivante pour générer une nouvelle paire de clés SSH :
ssh-keygen -t rsa -b 4096 -C "votre_email@example.com"
-t rsa
: Spécifie le type de clé (RSA).-b 4096
: Spécifie la longueur de la clé en bits (4096 bits pour une sécurité accrue).-C "votre_email@example.com"
: Ajoute un commentaire à la clé (généralement votre adresse e-mail).
-
Suivez les instructions à l'écran :
- Appuyez sur
Entrée
pour accepter le chemin par défaut où la clé sera enregistrée (~/.ssh/id_rsa
). - Vous pouvez choisir de définir une phrase secrète pour une sécurité supplémentaire ou la laisser vide pour une connexion sans mot de passe.
- Appuyez sur
Étape 2 : Copier la clé publique sur la Machine B
-
Utilisez
ssh-copy-id
pour copier la clé publique :Cette commande copiera votre clé publique sur la Machine B et l'ajoutera au fichier
~/.ssh/authorized_keys
:ssh-copy-id root@100.100.10.100
- Remplacez
root
par le nom d'utilisateur approprié si vous n'utilisez pas l'utilisateur root. - Entrez le mot de passe de l'utilisateur sur la Machine B lorsque vous y êtes invité.
- Remplacez
-
Vérifiez la connexion SSH :
Testez la connexion SSH pour vous assurer que vous pouvez vous connecter sans mot de passe :
ssh root@100.100.10.100
Si tout est configuré correctement, vous devriez pouvoir vous connecter sans entrer de mot de passe.
Étape 3 : Programmer la copie hebdomadaire avec rsync
-
Ouvrez le crontab sur la Machine A :
Utilisez la commande suivante pour éditer le crontab de l'utilisateur actuel :
crontab -e
-
Ajoutez une tâche cron pour
rsync
:Ajoutez la ligne suivante pour planifier l'exécution de
rsync
chaque semaine, par exemple tous les dimanches à 2h du matin :0 2 * * 0 rsync --progress -av /srv/path/to/folder/ root@100.100.10.100:/srv/Folder/
0 2 * * 0
: Spécifie l'heure et le jour de la semaine (dimanche à 2h du matin).rsync --progress -av /srv/path/to/folder/ root@100.100.10.100:/srv/Folder/
: La commandersync
pour synchroniser les fichiers.
-
Enregistrez et quittez l'éditeur :
Enregistrez les modifications et quittez l'éditeur. La tâche est maintenant programmée.
Étape 4 : Vérification
-
Vérifiez les tâches cron :
Vous pouvez lister les tâches cron pour vous assurer que la tâche a été ajoutée correctement :
crontab -l
-
Testez manuellement la commande
rsync
:Avant de compter sur la tâche cron, testez manuellement la commande
rsync
pour vous assurer qu'elle fonctionne comme prévu :rsync --progress -av /srv/path/to/folder/ root@100.100.10.100:/srv/Folder/
En suivant ces étapes, vous aurez configuré une synchronisation hebdomadaire automatique entre la Machine A et la Machine B en utilisant rsync et l'authentification par clé SSH.