Ceci est une ancienne révision du document !
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.
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.
Si votre ordinateur est portable, il vous faudra brancher le disque externe avant de le démarrer. Si c'est un ordinateur de bureau, laissez ce disque branché en permanence.
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.
Le fichier
/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.
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 :
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 :
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.
1 2 3 4 5 6 7 8 9 10 |
----------------------------------------------------------------------------
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 :
1 2 3 4 5 6 7 8 9 10 11 |
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 :
Ligne 1 : L'identifiant du process (PID, ici de valeur 10292) sera sauvegardé dans /var/run/rsnapshot.pid
afin d'éviter que plusieurs sauvegardes ne s'exécutent simultanément.
Ligne 2 : Le dossier /mnt/usb-SAUVEGARDES/daily.0/
sera ensuite créé, avec des droits permettant à tous les utilisateurs d'y accéder.
Lignes 3 et 4 : La sauvegarde du répertoire /home/<identifiant>/
sera effectuée, à l'aide du programme rsync.
Lignes 6 et 7 : La sauvegarde du répertoire /etc/
sera effectuée.
Lignes 9 et 10 : La sauvegarde du répertoire /usr/local/
sera effectuée.
Ligne 11 : Affectera la date et l'heure de la fin de ces sauvegardes au dossier /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 :
1 2 |
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éation du service
Créer avec les droits root le fichier /etc/systemd/system/rsnapshot@.service
contenant :
1 2 3 4 5 6 7 8 |
[Unit]
Description=Sauvegarde rsnapshot (%I)
[Service]
Type=oneshot
Nice=19
IOSchedulingClass=idle
ExecStart=/usr/bin/rsnapshot %I
|
Création des timers
Pour les sauvegardes quotidiennes, créer avec les droits root le fichier /etc/systemd/system/rsnapshot-daily.timer
contenant :
1 2 3 4 5 6 7 8 9 10 |
[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 :
1 2 3 4 5 6 7 8 9 10 |
[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"
Activation des timers
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*
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.
Script sauvegarde_quotidienne.sh
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 :
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/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
Exécuter sudo rsnapshot sans mot de passe
sudo visudo /etc/sudoers.d/rsnapshot
Copier dans l'éditeur qui vient de s'ouvrir la ligne :
1 |
%sudo ALL = NOPASSWD: /usr/bin/rsnapshot
|
Sauvegarder avec Ctrl+X puis O ou Y. Valider.
Raccourci sur le bureau
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> :
1 2 3 4 5 6 7 |
[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 :
7 personnes ont visité cette page aujourd'hui et 2199 en tout.