Comment "sauvegarder" son /home sur son PC

Comment "sauvegarder" son /home sur son PC

Le terme sauvegarde employé ici est très générique, car cela va beaucoup plus loin que cela.
Cela va également consister a ne pas perdre de temps à réinstaller les packages déjà installés sur ma machine.
Comme je suis un grand malade, je l'ai mis en pratique bien entendu, c'est-à-dire que j'ai volontairement détruit mon système avec des essais préalables.
LVM ou pas, partition séparer ou non, cela n'a aucune importance, on parle de données et non de partitions.
Pour l'exemple voici mon partitionnement sur un SSD 128 Go
Et un sdb1 /data

De quoi avons-nous besoin ?
1 - La liste des packages
2 - faire une archive .tar compresser ou non j'aime bien xz mais un peu long

1 - pour lister les packages cette commande est faite pour cela

dpkg --get-selections


Cela liste absolument tout, les packages installés par défaut comme ceux que j'ai installé via apt install.
Remarquez également le statut install ...

Reste plus qu'à faire un petit script pour sauver le /home.
Simple, rapide sans se prendre la tête ni se prendre pour un barbu des années 80

#!/bin/bash
backup="/data/save"
source="/home/madmaxx"
ladate=$(date +%Y-%m-%d)
archive="${backup}/madmaxx-${ladate}.tar"
compress="tar -cvf $archive $source"

if [ -d $backup ] && [ -f $archive ]
then
		echo "la sauvegarde existe déjà"
exit
elif [ -d $backup ]
then
		dpkg --get-selections > /data/save/package-selections
sleep 2
        $compress
else
        mkdir $backup && $compress
exit
fi

Dans ce script, je fais en sorte d'avoir plusieurs archives tar de /home
Par contre je ne conserve qu'une seule occurrence de mes packages installés
C’est un choix qui me convient, libre à vous de modifier cela à votre convenance.

Ensuite, à la fin de l'install, ouvrez un terminal et taper ces commandes (notez que le chemin de packages-selections est propre à mon usage, changez-le selon votre config bien entendu) :

apt update
apt install dselect -y
dselect update
dpkg --set-selections < /data/save/package-selections
apt-get dselect-upgrade

Ensuite, plus qu'à recopier vos données depuis l'archive tar vers votre /home tout neuf.
2 méthodes :
1 - mode bourrin => succès garanti pour être sûr d'être dans la catégorie championne des "Mr je m'y connais" avec une grande probabilité de devoir tout recommencer.

tar -xvf monarchive.tar -C /home/user/


2 - mode sélectif

tar -xvf monarchive.tar -C /tmp

Et ensuite de déplacer/copier vos données, paramètres, thèmes, etc...
Cela permet aussi de faire du tri
J’ai pour habitude de nettoyer mon /home régulièrement, sinon j'ai tendance à stocker "au cas où".

Comme vous pouvez le voir, il suffit de peu pour faire le job, inutile d'installer tel ou tel logiciel quand on peut le faire rapidement et maîtriser toute la chaîne du job.
On peut facilement adapter cela avec Rsync par exemple et/ou exporter la sauvegarde vers un nas, disque réseau ou autre stockages externes.

Enfin, si vous voulez, vous avez aussi un équivalent de timeMachine => TimeShift,
Qui permet de prendre des snapshots incrémentaux.
Derrière ce n'est ni plus ni moins qu'une belle utilisation de Rsync
En ce qui me concerne, je préfère maîtriser autant que possible la chaîne de bout en bout et donc de coder, "scripter" selon mon mode de pensée, de fonctionnement.

J’aurais tout aussi bien pu le faire avec Ansible par exemple pour ce qui concerne les packages, mais bien plus long à mettre en place.