Quelles sont les données à sauvegarder ?
On va considérer deux cas : celui d'un ordinateur personnel et celui d'un serveur.
Dans le cas d'un ordinateur personnel, on va distinguer la partie système de la partie données personnelles. On considérera que l'on dispose du disque dur principal de l'ordinateur correctement partitionné, et d'un disque dur externe rapide.
Dans le cas d'un serveur, tout son contenu sera sauvegardé à distance (sur un autre serveur), via une liaison sécurisée.
Il est crucial de bien séparer les données du système de ses données personnelles. C'est pour cela qu'il faut partitionner correctement son disque dur lors de l'installation de Linux.
Cf. Préparer son disque dur avant une installation de LinuxMint.
J'ai choisi d'installer un disque externe rapide neuf.
Démontez toutes vos clés USB et retirez-les. Puis branchez le nouveau disque dur. Dans mon cas, il est reconnu comme disque /dev/sdb
n'ayant qu'une partition (primaire) : /dev/sdb1
.
La première chose à faire est de formater /dev/sdb1
en ext4
(toutes les données que cette partition peut contenir seront effacées) avec l'utilitaire gparted (à installer si ce n'est déjà fait).
Une fois ce disque formaté, fermez gparted
, puis débranchez et rebranchez le disque.
Ouvrez un terminal et entrez :
ls /dev/disk/by-id/
Dans la liste qui s'affiche, vous devez reconnaître votre disque et sa partition n°1, dont le nom se termine par -part1
.
ls -l /dev/disk/by-id/<identifiant de votre disque>-part1
doit retourner qu'il s'agit d'un lien symbolique vers ../../sdb1
.
Il faut maintenant faire en sorte que ce disque soit monté automatiquement à chaque démarrage de votre ordinateur.
Ajoutez à la fin de votre fichier /etc/fstab
la ligne suivante :
/dev/disk/by-id/<identifiant de votre disque>-part1 /mnt/usb-SAUVEGARDES auto nosuid,nodev,nofail,x-gvfs-show 0 0
où <identifiant de votre disque> est à remplacer par l'identifiant que vous a donné la commande ls /dev/disk/by-id/
précédente.
Enregistrez votre fichier /etc/fstab
et redémarrez votre ordinateur. Votre partition de sauvegarde devrait apparaître dans la liste des partitions montées. Ne la démontez jamais.
/etc/fstab
est un fichier sensible. Sauvegardez-le avant toute modification :sudo cp /etc/fstab /etc/fstab.SVG
Puis, utilisez nano avec les droits root pour le modifier :
sudo nano /etc/fstab
Ajoutez votre ligne, puis une ligne vide en-dessous. Ensuite, pour sortir de nano tout en enregistrant les modifications, utilisez la combinaison de touches : [ctrl][x] puis répondez par O ou Y à la question posée et validez.
Linux Mint fournit le logiciel timeshift
, qui se lance à partir du menu Administration.
Pour vérifier que timeshift
est bien installé :
which timeshift
La réponse doit être : /usr/bin/timeshift
. Sinon, installez-le.
Lors de sa première utilisation, timeshift
(qui nécessite que vous entriez votre mot de passe) vous demande de renseigner quelques paramètres :
/dev/sda5
ou /dev/sdb1
.)Une fois tout ceci renseigné, créez une première sauvegarde ; cela prend quelques dizaines de minutes. Il est normal (enfin… presque) que le temps restant estimé reste plusieurs minutes à 00:00:00.
Vous n'aurez pas à vous préoccuper des sauvegardes suivantes, elles suivront le planning que vous avez défini.
Une fois votre sauvegarde effectuée, vous pouvez modifier votre système à votre guise (installer une nouvelle distribution, par exemple). Pour revenir en arrière, il vous suffit de lancer timeshift
et de demander la restauration de votre dernière sauvegarde.
apt install rsnapshot anacron
Faire une copie du fichier de configuration original, par précaution :
sudo cp /etc/rsnapshot.conf /etc/rsnapshot.conf_ORIG
Modifier avec les droits root le fichier /etc/rsnapshot.conf
. Il doit contenir les lignes suivantes (utiliser la touche de tabulation comme séparateur dans chaque ligne, au lieu de la touche d'espace) :
config_version 1.2 snapshot_root /mnt/usb-SAUVEGARDES/ no_create_root 1 cmd_cp /bin/cp cmd_rm /bin/rm cmd_rsync /usr/bin/rsync cmd_logger /usr/bin/logger cmd_du /usr/bin/du cmd_rsnapshot_diff /usr/bin/rsnapshot-diff retain daily 7 retain weekly 4 verbose 2 loglevel 3 lockfile /var/run/rsnapshot.pid backup /home/<votre_identifiant>/ localhost/ backup /etc/ localhost/ backup /usr/local/ localhost/
La vérification de la configuration se fait à l'aide de la commande :
rsnapshot configtest
La réponse doit être :
Syntax OK
Si la réponse ressemble à celle ci-dessous, cela ne signifie pas forcément que l'erreur se situe ligne 99. Vérifiez que vos chemins vers des répertoires se terminent bien par un /
et que vos séparateurs sont bien des tabulations.
---------------------------------------------------------------------------- rsnapshot encountered an error! The program was invoked with these options: /usr/bin/rsnapshot configtest ---------------------------------------------------------------------------- ERROR: /etc/rsnapshot.conf on line 99: ERROR: retain daily 7 ERROR: --------------------------------------------------------------------- ERROR: Errors were found in /etc/rsnapshot.conf, ERROR: rsnapshot can not continue. If you think an entry looks right, make ERROR: sure you don't have spaces where only tabs should be.
Comme nous avons défini deux types de sauvegardes, daily (quotidienne) et weekly (hebdomadaire), nous allons tester chacune d'elles sans qu'aucune sauvegarde ne soit effectuée :
rsnapshot -t daily
La réponse ressemble à cela :
echo 10292 > /var/run/rsnapshot.pid mkdir -m 0755 -p /mnt/usb-SAUVEGARDES/daily.0/ /usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \ /home/<identifiant>/ /mnt/usb-SAUVEGARDES/daily.0/localhost/ mkdir -m 0755 -p /mnt/usb-SAUVEGARDES/daily.0/ /usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /etc/ \ /mnt/usb-SAUVEGARDES/daily.0/localhost/ mkdir -m 0755 -p /mnt/usb-SAUVEGARDES/daily.0/ /usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \ /usr/local/ /mnt/usb-SAUVEGARDES/daily.0/localhost/ touch /mnt/usb-SAUVEGARDES/daily.0/
Explications :
/var/run/rsnapshot.pid
afin d'éviter que plusieurs sauvegardes ne s'exécutent simultanément./mnt/usb-SAUVEGARDES/daily.0/
sera ensuite créé, avec des droits permettant à tous les utilisateurs d'y accéder./home/<identifiant>/
sera effectuée, à l'aide du programme rsync./etc/
sera effectuée./usr/local/
sera effectuée./mnt/usb-SAUVEGARDES/daily.0/
Remarque : Les 7 sauvegardes quotidiennes sont effectuées dans des répertoires numérotés, de daily.0
à daily.6
. Une sauvegarde hebdomadaire ne pourra s'effectuer que si le répertoire daily.6
existe.
rsnapshot -t weekly
La réponse sera, si le répertoire daily.6
n'existe pas (encore) qu'il n'y a rien à copier :
echo 10310 > /var/run/rsnapshot.pid /mnt/usb-SAUVEGARDES/daily.6 not present (yet), nothing to copy
Il est temps de créer le service et les timers pour automatiser ces sauvegardes.
Créer avec les droits root le fichier /etc/systemd/system/rsnapshot@.service
contenant :
[Unit] Description=Sauvegarde rsnapshot (%I) [Service] Type=oneshot Nice=19 IOSchedulingClass=idle ExecStart=/usr/bin/rsnapshot %I
Pour les sauvegardes quotidiennes, créer avec les droits root le fichier /etc/systemd/system/rsnapshot-daily.timer
contenant :
[Unit] Description=Sauvegarde quotidienne rsnapshot [Timer] OnCalendar=*-*-* 20:30:00 Persistent=true Unit=rsnapshot@daily.service [Install] WantedBy=timers.target
Pour les sauvegardes hebdomadaires, créer avec les droits root le fichier /etc/systemd/system/rsnapshot-weekly.timer
contenant :
[Unit] Description=Sauvegarde hebdomadaire rsnapshot [Timer] OnCalendar=Mon *-*-* 19:00:00 Persistent=true Unit=rsnapshot@weekly.service [Install] WantedBy=timers.target
La ligne OnCalendar définit l'horaire de la sauvegarde. Pour les quotidiennes, c'est chaque jour à 20h30. Pour les hebdomadaires, c'est chaque lundi (Mon pour Monday) à 19h00. Adaptez ces horaires de façon à ce que les sauvegardes s'exécutent à des moments où l'ordinateur est allumé mais peu utilisé. Plus de précisions ici (en anglais).
Vous pouvez vérifier votre ligne OnCalendar grâce à la commande :
systemd-analyze calendar "Mon *-*-* 19:00:00"
Elle s'effectue grâce aux commandes :
sudo systemctl enable --now rsnapshot-daily.timer sudo systemctl enable --now rsnapshot-weekly.timer
Pour vérifier leur bonne activation :
sudo systemctl list-timers rsnapshot*
La sortie doit ressembler à ceci :
NEXT LEFT LAST PASSED UNIT ACTIVATES Tue 2022-11-01 20:30:00 CET 7h left Mon 2022-10-31 20:30:01 CET 17h ago rsnapshot-daily.timer rsnapshot@daily.service Mon 2022-11-07 19:00:00 CET 6 days left Mon 2022-10-31 19:00:01 CET 18h ago rsnapshot-weekly.timer rsnapshot@weekly.service 2 timers listed. Pass --all to see loaded but inactive timers, too.Éventuellement, quitter par un appui sur la touche Q.
C'est terminé. Les sauvegardes se feront automatiquement aux moments définis.
Pour effectuer une sauvegarde quotidienne, qui n'entrera pas en concurrence avec celle qui est programmée, grâce à un raccourci sur le bureau, voici comment procéder.
Créer, s'il n'existe pas déjà, le dossier $HOME/bin/ :
mkdir -p $HOME/bin
Dans ce dossier, créer le fichier sauvegarde_quotidienne.sh
contenant :
#!/bin/bash [ -d /mnt/usb-SAUVEGARDES/ ] || notify-send -u critical -i mintbackup-data "Brancher le disque des sauvegardes !" "Fermer ceci une fois fait" notify-send -u normal -i mintbackup-data "La sauvegarde quotidienne commence..." "Merci de patienter" sudo rsnapshot daily || { notify-send -u critical -i mintbackup-data "Sauvegarde impossible" exit 1 } && { notify-send -u normal -i mintbackup-data "La sauvegarde quotidienne est terminée" exit 0 }
Rendez-le exécutable :
chmod +x $HOME/bin/sauvegarde_quotidienne.sh
sudo visudo /etc/sudoers.d/rsnapshot
Copier dans l'éditeur qui vient de s'ouvrir la ligne :
%sudo ALL = NOPASSWD: /usr/bin/rsnapshot
Sauvegarder avec Ctrl+X puis O ou Y. Valider.
Créer le fichier du raccourci.
touch $HOME/Bureau/Sauvegarde\ Quotidienne.desktop
Clic-droit sur le fichier qui vient d'apparaître sur le Bureau, Ouvrir avec… éditeur de texte.
Y copier les lignes suivantes, en renseignant <votre_identifiant> :
[Desktop Entry] Name=Sauvegarde quotidienne Exec=/home/<votre_identifiant>/bin/sauvegarde_quotidienne.sh Comment=Brancher le disque des sauvegardes avant ! Terminal=false Icon=mintbackup-data Type=Application
Enregistrer.
Clic-droit sur le fichier → Propriétés… → Permissions → cocher “Autoriser l'exécution du fichier comme un programme”.
C'est prêt !
Mise en place de rsnapshot :
Autres pistes que rsnapshot :
4 personnes ont visité cette page aujourd'hui et 1644 en tout.