Projet OpenClassrooms · mise en situation de formation

Tester des sauvegardes et restaurations avec rsync.

J’ai écrit des scripts rsync pour conserver des états datés de fichiers, copier des disques de VM et préparer leur restauration.

Distinguer les données et les disques de VM

J’ai écrit quatre scripts Bash pour traiter séparément les répertoires applicatifs et les fichiers de disques de machines virtuelles. J’ai utilisé rsync sur SSH, avec une clé dédiée et un mode non interactif, puis prévu un script de restauration pour chaque famille. J’ai complété cet ensemble par une crontab et des journaux d’essai pour suivre les copies et les retours vers la source.

Conserver des états datés

Dans backup_context.sh, je passe le nom du contexte, le nombre d’états à conserver et le jour de copie complète. Le script recherche le dernier répertoire distant, crée un nouvel horodatage et lance rsync -a -z. Hors jour complet, j’utilise --link-dest pour partager les fichiers identiques avec l’état précédent par liens matériels. Chaque répertoire reste consultable comme une vue complète des données ; il s’agit d’un historique de répertoires, et non de snapshots natifs du système de fichiers. Après le transfert, je trie les noms à distance et supprime les états les plus anciens au-delà de la rétention.

J’ai adapté la planification aux contextes : quatre états pour SITE, copié mercredi et samedi ; dix pour FICHIERS, copié chaque jour ; quatorze pour MAILS et vingt pour TICKETS, copiés deux fois par jour. Pour RH, j’ai combiné une copie le 29 du mois avec celles de mercredi et samedi. J’ai fixé le samedi comme jour complet, sans --link-dest. Ma rétention correspond donc à un nombre d’états, sans garantir une durée si les exécutions ne suivent pas le planning.

Préparer la restauration

Dans restore_context.sh, je sélectionne un horodatage, latest ou prev, puis je contrôle l’existence du répertoire distant et j’écris un journal. Sans chemin supplémentaire, je restaure tout le contexte avec --delete. Avec une liste, j’utilise --files-from et --relative pour reprendre uniquement les fichiers demandés. Pour les disques de VM, j’ai retenu une autre stratégie : backup_vm.sh maintient un seul répertoire MACHINES avec --partial, --append-verify et --inplace. Le script de restauration reprend un ou plusieurs noms de disque. Cette copie est modifiée sur place et ne conserve pas les générations datées des contextes.

Tester les transferts et les retours

J’ai conservé les journaux de plusieurs états SITE, dont un transfert de 20 octets après une copie plus importante, et de deux restaurations de SITE. J’ai aussi tracé la copie aller et retour de deux fichiers de test d’environ 1 et 2 Go. Mes scripts prévoient un arrêt sur erreur Bash et la journalisation des statistiques rsync ; pour le script VM, le dossier de journal doit déjà exister. Ces essais documentent la copie et la récupération de données. Ils ne valident pas la cohérence d’une application pendant la sauvegarde, le démarrage d’une VM restaurée ou le respect du planning dans la durée.

Explorer les autres projets

Parcours technique

Retrouver les autres mises en situation de formation et mon infrastructure personnelle.

Tous les projets