PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

Linux : créer, restaurer et planifier des points de restauration avec Timeshift

vendredi 8 juillet 2022 à 10:00

I. Présentation

Aujourd'hui, je vais vous présenter Timeshift, un outil fort pratique pour la création et la gestion des points de restauration, également appelé snapshot en anglais. Timeshift est un service permettant de créer des "images disques" (snapshots, ou "points de restauration") de votre système, de les panifier et de restaurer un "point" dans le cas où votre système deviendrait instable.

Cet outil est assez similaire à TimeMachine pour macOS ou au point de restauration de Windows. Comme eux, il est simple à utiliser et dispose à la fois d'une interface graphique et d'un accès en ligne de commandes.

Quelques informations qui méritent d'être portées à votre connaissance :

Dans cet article, je n'aborderai pas l'utilisation de la GUI de Timeshift, car j'estime que ce tutoriel est plutôt destiné à des serveurs "Core" dépourvus d'interface graphique, comme un VPS, un serveur de production ou autre.

II. Création de notre premier snapshot (point de restauration)

Pour ma part, j'utilise une machine sous Ubuntu 22.04 donc je vais pouvoir installer Timeshift à partir des dépôts officiels. Pour installer Timeshift, utilisez apt :

apt install timeshift

En guise d'exemple, je vais créer un fichier qui va servir d'indicateur afin de vérifier si notre point de restauration a bel et bien été créé sans encombre.

echo "sentence from the past" > /etc/file_that_will_be_snapshoted

Créez ensuite un snapshot par l'intermédiaire de la commande ci-dessous, tout en sachant que vous n'êtes pas obligé d'inclure "--comments" qui sert à ajouter un commentaire à ce point de restauration, mais c'est recommandé pour s'y retrouver.

timeshift --create --comments "test backup"

Comme vous le constatez, l'image est en cours de création. Patientez quelques minutes....

Vous pouvez obtenir sa taille par l'intermédiaire de la commande suivante (en ajustant la fin du chemin) :

du -sh /run/timeshift/backup/timeshift/snapshots/2022-06-27_14-02-15/

Dans mon cas l'image à un poids informatique de 7,4 Go.

Sachez que plus vous créez de points de restauration fréquemment, plus votre restauration sera "précise", et légère. En effet, Timeshift utilise un système de sauvegarde différentielle, qui se base sur les fichiers précédemment sauvegardés.

Dans le but de simuler un faux problème système, je vais créer le fichier suivant : "file_that_will_disrupt_the_system". Lors du processus de restauration, en tout logique, seul  le fichier "/etc/file_that_will_be_snapshoted" sera restauré contrairement à "/etc/file_that_will_disrupt_the_system" qui sera détruit, car je l'ai créé après avoir créé le point de restauration.

touch /etc/file_that_will_disrupted_the_system

III. Restauration !

Et là c'est le drame ! Imaginez que pour une raison quelconque, votre système se trouve mis à mal suite à une maladresse de votre part ! Heureusement, vous avez pensé à mettre en place un système de snapshot automatique sur votre système... car vous avez lu cet article ! 😉

Voici la procédure pour restaurer un snapshot très facilement... Rien de plus simple ! Entrez la commande suivante et choisissez le point de restauration (généralement l'un des plus récents) que vous souhaitez restaurer. Attention, il s'agit véritablement d'un retour arrière donc sauvegardez les éventuels fichiers que vous souhaitez conserver avant de restaurer ce point de restauration (par exemple, un fichier important créé après avoir généré le point de restauration).

timeshift --restore

timeshift --restore

Par défaut, Timeshift détecte automatiquement la partition réservée au GRUB (Gestionnaire de démarrage). Toutefois, vérifiez quand même à deux fois son choix par défaut, afin d'éviter tout problème. Dans mon cas, mon système est installé sur la partition SDA5 donc la partition qui accueille GRUB doit donc être SDA.

Patientez quelques minutes le temps de la restauration. Le système redémarre une fois que la restauration est terminée. En me connectant de nouveau à mon serveur, je peux donc observer qu'un seul des fichiers que j'avais créé est présent sur le serveur : ce qui est normal.

IV. Automatiser le processus de sauvegarde avec un script bash

AUTOMATION is Life ! Afin de gagner du temps, vous pouvez assez facilement programmer vos snapshots de manière automatique. Pour cela, on peut créer un script Bash, nommé par exemple "timeshift.sh". A chaque fois, un point de restauration sera créé avec la date du jour et le fichier "/var/log/timeshift_logs_from_cron.txt" sert à journaliser les actions de Timeshift.

nano timeshift.sh

#!/bin/bash
timeshift --create --scripted >> /var/log/timeshift_logs_from_cron.txt
timeshift --list >> /var/log/timeshift_logs_from_cron.txt
echo "-----------------------------------------------------------------------" >> /var/log/timeshift_logs_from_cron.txt 
backupDate=$(date +"%Y-%m-%d")
snapshotPath="/run/timeshift/backup/timeshift/snapshots/${backupDate}*"
echo "Snapshot weight : $(du -sh $snapshotPath)" >> /var/log/timeshift_logs_from_cron.txt
echo "---------------------------------END-----------------------------------" >> /var/log/timeshift_logs_from_cron.txt

Attribuez à ce script des droits d'exécution :

chmod u+x timeshift.sh

Créez ensuite la tâche CRON pour planifier son exécution et donc la création d'un point de restauration :

crontab -e

Patientez, pour vérifier que la création du point de restauration s'effectue au moment que vous souhaitez et observez les processus en cours avec la commande "htop" afin de repérer le processus Timeshift en cours d'exécution.

Une fois que la sauvegarde est arrivée à son terme, afficher les logs du script via la commande suivante :

cat /var/log/timeshift_logs_from_cron.txt

En l'état, ce script ne supprime pas les anciens points de restauration. On pourrait supprimer les anciens points de restauration avec une commande comme celle-ci :

find /run/timeshift/backup/timeshift/snapshots/ -mtime +31 -exec rm -rf {} \;

V. Créer le point de sauvegarde sur un autre disque, partition, USB, etc.

Pour terminer, nous allons voir qu'il est possible de stocker le point de restauration Timeshift sur un périphérique/disque spécifique. Dans mon cas, je vais connecter une clé USB à ma machine virtuelle, afin qu'elle soit reconnue comme périphérique de stockage externe par Ubuntu.

Celle-ci est identifiée en tant que deuxième périphérique de stockage par mon système (sdb). Pour spécifier cet emplacement, on utilise le paramètre "--snapshot-device" suivi du chemin.

timeshift --create --snapshot-device /dev/sdb1

Note : attention à la compatibilité matérielle USB 2/3/3.1. Vous pouvez modifier ces réglages à chaud sur VMware depuis les paramètres de la VM.

Pour restaurer depuis votre espace de stockage externe, ce n'est pas plus difficile :

timeshift --restore --snapshot-device /dev/sdb1

J'espère que cet article vous aura plu ! Désormais, vous êtes en mesure de créer des points de restauration Timeshift sur votre machine Linux.

The post Linux : créer, restaurer et planifier des points de restauration avec Timeshift first appeared on IT-Connect.