Skip to main content

Automatiser la Synchronisation entre Deux Serveurs avec rsync et SSH

É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 -a /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 -a /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 -a /srv/path/to/folder/ root@100.100.10.100:/srv/Folder/
    

    Pour faire la copie de suite en verbose: rsync --progress -av /srv/path/to/folder/ root@100.100.10.100:/srv/Folder/