Skip to main content

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

  1. Connectez-vous à la Machine A :

    Ouvrez un terminal sur la Machine A.

  2. 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).
  3. 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.

Étape 2 : Copier la clé publique sur la Machine B

  1. 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é.
  2. 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

  1. Ouvrez le crontab sur la Machine A :

    Utilisez la commande suivante pour éditer le crontab de l'utilisateur actuel :

    crontab -e
    
  2. 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 commande rsync pour synchroniser les fichiers.
  3. Enregistrez et quittez l'éditeur :

    Enregistrez les modifications et quittez l'éditeur. La tâche est maintenant programmée.

Étape 4 : Vérification

  1. 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
    
  2. 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.