Aller au contenu

Sauvegarder le système (Rsync & Cron)

1. Objectif du cours

Comprendre l'utilisation de Rsync pour réaliser des sauvegardes manuelles et automatisées sous Debian 11, et savoir planifier ces tâches avec Cron en sécurisant les transferts via SSH.

2. Notions et définitions essentielles

  • Rsync (Remote Synchronization) : logiciel libre de synchronisation/sauvegarde (incrémentale/différentielle).
  • Source : emplacement des données à sauvegarder (expéditeur).
  • Destination : espace de réception des sauvegardes (hôte de réception).
  • Cron : planificateur de tâches Linux (fichier crontab) permettant d'exécuter des commandes selon une planification temporelle.

3. Fonctionnement et principes

  • Premier envoi : copie intégrale des fichiers lorsque la destination est vide.
  • Envois suivants : synchronisation incrémentale ; Rsync compare source et destination et transfère uniquement les fichiers nouveaux ou modifiés (optimisation du temps et de la bande passante).
  • Par défaut, Rsync n'efface pas les fichiers présents sur la destination si elles ont été supprimées côté destination (sécurité contre les suppressions involontaires) ; la suppression côté destination n'est réalisée que si une option explicite est activée.
  • Transferts distants : recommandation d'utiliser SSH pour chiffrer la connexion et garantir la confidentialité.
  • Automatisation : Cron exécute des commandes selon une syntaxe en champs temporels (minutes, heures, jours du mois, mois, jour de la semaine).

4. Commandes et manipulations

Groupées par procédure, exemples tirés du cours.

  • Installation et mise à jour :
  • apt-get update && apt-get upgrade -y
  • apt-get install rsync

  • Préparation local du répertoire de test :

  • mkdir /home/Travail
  • echo "Ceci est un fichier de test" > /home/Travail/Test

  • Tests de copie locale :

  • rsync /home/Travail/ /tmp/Travail/
  • rsync -a /home/Travail/ /tmp/Travail/
  • rsync -av /home/Travail/ /tmp/Travail/

  • Envoi vers serveur distant (non sécurisé / sécurisé) :

  • rsync /home/Directeur/Travail @ipServ2:/home/Sauvegarde/Travail
  • rsync -e ssh -avz /home/Travail geoff@192.168.100.20:/tmp/Travail/

  • Accès et vérification distante :

  • ssh geoff@192.168.100.20
  • ls /tmp/Travail

  • Gestion et vérification de Cron :

  • systemctl status cron
  • systemctl start cron
  • crontab -e
  • crontab -l
  • systemctl restart cron.service
  • tail -f /var/log/cron.log

Remarque : les options Rsync vues dans le cours : -a (archive), -v (verbose), -z (compression), -e ssh (utiliser SSH).

5. Sécurité et bonnes pratiques

  • Ne pas stocker les sauvegardes uniquement sur la même machine ; privilégier un serveur distant ou un cloud pour éviter perte en cas de panne matérielle.
  • Sécuriser les transferts distants via SSH (option -e ssh). Lors de la première connexion SSH, valider l'empreinte si demandée.
  • Pour automatiser sans mot de passe, utiliser l'authentification par clé SSH (copie de la clé publique sur la destination recommandée).
  • Pour suivi des tâches automatisées, configurer un MTA (ex. Postfix) et définir la variable MAILTO dans crontab si on souhaite recevoir notifications par e-mail.

6. Points essentiels à retenir pour le TSSR

  • Rsync = Remote Synchronization, outil de synchronisation et sauvegarde incrémentale.
  • Option -a active le mode archivage (préservation structure, permissions, dates, liens).
  • -v et -z servent respectivement à afficher les opérations et compresser le flux.
  • -e ssh permet de chiffrer le transfert vers un hôte distant.
  • Premier envoi = copie complète ; suivantes = transfert seulement des nouveaux/modifiés.
  • Par défaut, Rsync n'efface pas la destination pour protéger contre suppressions non désirées.
  • Cron planifie via 5 champs temporels (minute, heure, jour du mois, mois, jour de la semaine).
  • Utiliser crontab pour ajouter/éditer des tâches et vérifier l’état du service Cron avant configuration.
  • Tester manuellement une première synchronisation avant d'automatiser.
  • Prévoir surveillance (logs, mail) pour détecter échecs et anomalies.

7. Tableau récapitulatif

Cas Distinction principale Résultat attendu
Premier envoi Destination vide vs. existante Copie intégrale vs. copie incrémentale
Transfert local Pas de réseau Utilisation simple de Rsync local
Transfert distant non sécurisé Sans SSH Données en clair (éviter en production)
Transfert distant sécurisé Avec SSH Confidentialité assurée
Cron Planification temps vs. commande Automatisation régulière sans intervention

8. Vérifications pratiques

(énoncées sans répéter intégralement les commandes présentées en section 4) - Confirmer la présence du fichier de test dans le répertoire de destination local ou distant en listant le répertoire.
- Se connecter au serveur distant via SSH puis lister le dossier cible pour valider le transfert.
- Vérifier que le service Cron est actif avant d’ajouter une tâche.
- Lister les tâches planifiées de l’utilisateur pour s’assurer que la ligne Cron a bien été ajoutée.
- Suivre les journaux de Cron pour observer les exécutions et détecter d’éventuelles erreurs.

9. Flashcards Anki

Que signifie Rsync ? :: Remote Synchronization
Que préserve l'option -a de Rsync ? :: Structure des répertoires, permissions, dates et liens symboliques
Quelle option permet de compresser les données lors du transfert avec Rsync ? :: -z
Quelle option demande l'utilisation de SSH pour Rsync ? :: -e ssh
Que fait Rsync lors du premier envoi vers une destination vide ? :: Copie intégrale de tous les fichiers
Que transfère Rsync lors d'une sauvegarde incrémentale ? :: Uniquement les fichiers nouveaux ou modifiés de la source
Par défaut, Rsync supprime-t-il les fichiers présents sur la destination s'ils ont été retirés là-bas ? :: Non, pas par défaut
Quels sont les cinq champs temporels de la syntaxe Cron ? :: Minutes, Heures, Jours du mois, Mois, Jour de la semaine
Quelle commande du cours permet d'ouvrir le fichier crontab pour édition ? :: crontab -e
Quelle commande du cours installe Rsync sur Debian ? :: apt-get install rsync