Sauver les petits et jeter l'eau du bain...
maintenant je vais parler sauvegarde...
Avant de se lancer dans les sauvegardes, voyons ce que l'on peut sauver et surtout ce que l'on pourra restaurer...
on va prendre la métaphore bien connue de l'iceberg et commencer par ce qui existe au dessus de la surface de l'eau...
... mais avant, quelques trucs à savoir.
Le terminal s'ouvre avec Super (la touche avec le drapeau dont il ne faut pas dire l'autre nom) puis vous tapez term et vous aurez un choix de terminaux à utiliser. Je préfère gnome-terminal (aka terminal) mais xterm fera très bien l'affaire...
et, en raccourcis Ctrl + Alt + t fonctionne très bien aussi en général...
Vous sélectionnerez une ligne complète ici avec un triple clic (oui, j'ai bien dit triple).
Les lignes de commande se copient collent dans le terminal avec un clic droit / copier puis dans le terminal un clic droit / coller... il y a d'autres façons mais celle ci parlera à tous !
Arborescence :
Je vais détailler quelque fois l'arborescence complète en partant de votre dossier personnel suivi des sous dossiers pour vous simplifier les copier coller... ~/ est le dossier personnel de l'utilisateur actif...
donc ~/ c'est pareil que /home/toto (si vous êtes l'utilisateur toto qui est connecté !)... Votre navigateur reconnaîtra cette notation et il n'est pas utile de l'adapter... (oui... je suis cool 😉 !)
C'est parti !
Partie 1 : évidences
Les documents personnels de
chaque utilisateur créé sur le système. Une façon simple de les voir est de faire un :
ls /home
mais attention à cette façon de faire car certains utilisateurs peuvent ne pas avoir de dossier personnel ou que leur dossier personnel peut ne pas être dans /home (je le précise juste pour les barbus... NB : oui j'ai prévu ce à quoi vous pensez mais plus tard !).
On ne va pas récupérer bêtement tout le dossier... mais je ferais un a parte à la fin de ce tutoriel...
Une autre façon de voir tous les utilisateurs est de regarder dans le fichier /etc/passwd
cat /etc/passwd
les utilisateurs du systèmes auront comme id un nombre supérieur ou égal à 1000... le premier étant 1000
toto:x:1000:1000:toto,,,:/home/toto:/bin/bash
ici on voit notre utilisateur toto...
en fait tout cela est un raccourcis mais si vous êtes sorti des clous, vous savez de quoi je parle donc je ne m'étale pas plus... pour les autres, j'en ai suffisamment dit...
Ceci vu, vous aller récupérer tous les fichiers égarés et les réunir dans des dossiers puis vous pourrez recenser tous les dossiers et essayer de les réunir ou ranger intelligemment...
A ce titre, une option apparaît dans Nautilus (aka Fichiers) quand on sélectionne plusieurs fichiers pour les réunir au sein d'un même dossier... sous 16.04 et je crois 18.04, cette option est une calamité et fait planter le gestionnaire de fichier... j'y préfère un script que je met dans mes "Nautilus Script" et qui a quelques défauts mais ne plante pas... LUI !!!
Ce script est à mettre dans le dossier de vos Nautilus scripts et se nomme : Créer_une_série_dans_un_dossier
Il regroupe des fichiers dans un même dossier après vous avoir demandé de donner un nom à ce dossier et, petite amélioration, reprend le nom du premier fichier, ce qui est bien pratique pour ne pas avoir à retaper ce nom quelques fois.
J'ai ajouter aussi une routine pour que le script sorte en cas de sélection d'un dossier car je voulais qu'il soit spécialisé dans les fichiers... et son comportement gère mal les sélections multiples dans une vue en arborescence et ce bien que j'utilise cette vue intensivement... bref, il est très perfectible mais me rend bien service (et ne plante pas, LUI !!).
NB : j'ai tout laissé dedans dont des lignes qui servent au débogage... il est telle quel depuis 2015-2016, inutile de vous dire qu'il fonctionne bien dans les bonnes conditions. On pourrait le perfectionner... je vais y penser...
pour utiliser mon script, un petit tuto fécomsa :
on crée le fichier :
gedit ~/.local/share/nautilus/scripts/Créer_une_série_dans_un_dossier
et on y colle le texte suivant...
#!/bin/bash
#***************************
# kholo-informatique 2016
# www.kholo-informatique.fr
#***************************
NOM="Déplacer une série dans un dossier"
VERSION="2015.10.23.1747"
#~ Ce script crée des séries dans un sous répertoire
#~ à partir d'un ensemble de fichier
#~ il faut sélectionner un ou plusieurs fichiers
for i in $@; do
if [ -d "$i" ]; then
zenity --info --text="
'$i' est un répertoire.
usage : sélectionnez un ou plusieurs fichiers
ils seront réunis dans un sous dossier
une boite de dialogue vous proposera des choix pour le nom"
exit
fi
done
NB_ARG=$#
# Ask the user to select
title="Création d'un dossier"
suggested_text="$1"
suggested_text="${suggested_text%.*}"
dirdest=$(zenity --entry --title="$title" --entry-text="$suggested_text")
if [ -z "$dirdest" ]; then
$ZENITY --error --title="$title" --text="traitement interrompu"
exit 0;
fi
mkdir "$dirdest"
#~ zenity --info --text="déplacement de
#~ $dirdest
#~ dans
#~ $@
#~ "
for arg in "$@"
do
mv "$arg" ./"$dirdest"
#~ zenity --info --text="TRAITEMENT
#~ $arg
#~ $dirdest
#~ "
shift
done | zenity --progress --pulsate --text="Traitement des $NB_ARG fichiers" --auto-close --auto-kill
#~ zenity --info --text="Traitement des $NB_ARG fichiers"
notify-send"Traitement des $NB_ARG fichiers"
exit
vous rendez le script exécutable
chmod +x ~/.local/share/nautilus/scripts/Créer_une_série_dans_un_dossier
puis il suffit de sélectionner des fichiers dans un dossier puis clic droit / Scripts / Créer_une_série_dans_un_dossier
et voilà !
bien... vous devriez déjà avoir fait le tour de vos dossiers personnels : Bureau, Documents, Images, Musique, Vidéos ou se regroupent vos documents, photos, images, vidéos, ce qui traîne sur le bureau...
Partie 2 : évidences... mais moins que la partie 1
Toujours la métaphore de l'iceberg... et nous passons au niveau de l'eau... juste le cul dans l'eau pour le moment...
Moins réflexes, allez faire un tour dans le dossier Téléchargements pour le nettoyer et conserver les papiers ou photos téléchargées par exemple mais aussi certainement d'autres types de documents qui pourraient avoir de l'importance à vos yeux comme des pdf... Ce dossier est typiquement celui où va servir le petit script au dessus histoire de regrouper votre petit fouillis accumulé dans le temps.
Toujours dans les dossiers pas communs qu'on oublie, le dossier : Modèles. Et oui, vous avez peut être pris du temps pour vous faire un petit gabarit pour faire plus vite votre courrier avec son entête et des champs auto-remplis voire un petit montage image sur Inkscape...
Vous ne vous servez pas de se dossier ? ... et bien c'est bien dommage !!!
Vous créé un document avec un logiciel que vous utiliser souvent et, dans ce document, vous mettez souvent les même informations... par exemple une tête de lettre avec votre adresse et un peu de mise en page pour faire simple... vous enregistrez ce document dans le dossier Modèles puis, à chaque besoin, vous vous rendez dans un dossier puis clic droit, Nouveau Document, vous choisissez un modèle et vous le nommez (ou renommez avec F2 : petit bug dans 20.04 grrrrr !!!!)...
A savoir, on a souvent besoin d'un fichier texte sous le pouce pour prendre une note à la volée...un numéro de téléphone, un copier coller... alors un modèle de fichier texte est bien pratique... une petite ligne de code à copier / coller (encore un bug gentil, pas de modèle pour ça et on doit le faire en ligne de code !):
touch ~/Modèles/"fichier texte.txt"
Quelques programmes portables
Viennent ensuite les programmes portables comme snap, appimages, flatpack, dockers ou certains .run qui peuvent avoir un dossier dans votre dossier personnel ou dans le dossier /opt.
A la racine de votre dossier personnel vous pouvez aussi trouver des dossiers de configuration spécifiques à certains programmes comme VirtualBox pour le programme du même nom ou Scratch,...
Partie 3 : On continue à effleurer notre monde...
On continue à descendre dans la métaphore de l'iceberg... et nous passons sous le niveau de l'eau : les trucs cachés... On ne va pas aller très profond encore... juste des choses évidentes !
D'abord, dans votre dossier personnel, faites apparaître les fichiers cachés en passant dans les options du navigateur de fichiers ou grâce à la combinaison de touche Ctrl + h (valable chez tous les navigateurs dignes de ce nom).
Un dossier est à regarder de près : .config... Il porte très bien son nom celui là aussi !
Sans doute, utilisez vous souvent les même programmes comme Firefox, Thunderbird, Chromium, Geany,... et sans doute avez vous quelques habitudes... une bonne façon de retrouver ces logiciels dans leur état habituel est de récupérer leur profile dans votre utilisateur que vous pourrez réinjecter lors d'une réinstallation voire partager avec d'autre installation voire d'autres utilisateurs...
Là il va falloir mettre un peu les mains dans le cambouis ou demander de l'aide à quelqu'un qui a déjà essayer... nous verrons plus loin pour sauver tous ces paramètres et il sera toujours temps de les retrouver...
Vous allez aussi trouver les profiles de Mozilla dans... roulement de tambour : vous avez trouvez : ~/.mozilla
presque... c'est bien le cas pour Firefox ~/.mozilla/firefox ; mais Thunderbird sera dans ~/.thunderbird
A noter pour Mozilla l'utilisation d'un fichier profile.ini qui va regrouper vos profiles et qui est bien utile pour retrouver un profile qui sera ailleurs sur votre système que là où il est attendu (moi je préfère les mettre ailleurs... pour ne pas dire n'importe où).
par exemple :
[Profile5]
Name=un Nom de Profile
IsRelative=0
Path=/ailleurs/Mon Monde/profiles/FF/profile machin
IsRelative=0 justement pour indiquer que ce profile sera ailleurs que dans un sous dossier à côté de ce fichier profile.ini.
Nous arrivons à un niveau bas de vos documents au niveau du système et nous pouvons encore descendre un peu :
quelque logiciels demandent une sauvegarde et de bien comprendre leur fonctionnement autant pour savoir quoi conserver que pour une restauration postérieure : par exemple vos sites internet locaux. Il devient courant qu'on ai un petit réseau local ouvert ou non et les sites que l'on va administrer seront constitués à minima de fichiers dans des dossiers qui seront placés ou liés vers /var/www ou /srv voire dans votre dossier personnel (je vais y revenir) ainsi qu'éventuellement de bases de données gérées par MySql ou son fork Maria DB par exemple (je parle d'une serveur LAMP ici...).
Si vous avez de tels systèmes pensez à leur sauvegarde.
A parte pour une page "internet" locale (on dira intranet):
Pas la peine de monter un système compliqué comme LAMP pour avoir une page sur votre ordinateur pour y conserver des informations que vous seul pourrez consulter ou utiliser...
Par exemple, créez un dossier www dans votre dossier personnel (www n'est pas une obligation), puis prenez un traitement de texte et créez une page avec du texte, des images, des liens... enregistrez cette page dans le dossier www avec l'extension .html (index.html par convention mais pas obligatoire) puis ouvrez cette page avec votre navigateur internet et définissez cette page par défaut ou créez un favoris vers cette page.
Vos mots de passe
C'est le logiciel SeaHorse qui se charge de conserver vos mots de passe et vous aidera à les gérer avec une interface graphique. Ici on touche à un élément sensible de votre système et je ne m’étalerai pas car il est préférable d'y dédier un fil.
Sachez qu'il existe aussi des fichiers .pub pour conserver des clés de connexions avec des serveurs ou comme serveur ainsi que des fichiers pour les clés de chiffrement pgp ou gpg (l'un l'autre ou les deux... j'ai un doute...)...
Partie 4 : On est au niveau du système...
Peut-on encore descendre ? OUI !
le dossier /etc
Nous arrivons à un niveau très bas de notre système.. on va pouvoir récupérer ici des informations de configuration qui consernent notre système à proprement parler comme fstab pour les montages des disques dur, Grub notre bootloader, les configurations de LAMP, on peut aussi avoir créé ou installer des petits services (car il est très simple d'en créer de toute pièces même aujourd'hui avec systemd).
Donc on va se faire une sauvegarde de notre /etc pour faire très simple car cette sauvegarde sera surtout utilisée comme référence en cas de réinstallation et il sera rare de vouloir juste réinjecter un fichier mais plutôt une ou des parties d'un ou de plusieurs fichiers.
Ce dossier est rarement volumineux et contient beaucoup de fichiers en texte pure alors un bon coup de tar pour conserver les droits et l'arborescence et l'affaire est dans le sac !
Épilogue
Je vais laisser de la place ici pour un ensemble de scripts qui sauvegardent les données de certains dossiers dans des fichiers uniques souvent compressés et très pratiques pour le dossier /etc par exemple mais on peut également les utiliser pour les dossiers cachés personnels par exemple :
#!/bin/bash
# ----------------------------------------------
nomlogiciel="${0##*/}"
FONCTION="# ce script crée une sauvegarde de /etc dans une archive"
VERSION="alpha"
# NOTES DE VERSIONS
# ----------------------------------------------
#
# ----------------------------------------------
# Ne pas lancer avec sudo !
leTexte="$FONCTION
continuer ?"
zenity --question --text="$nomlogiciel - V $VERSION" --text="$leTexte"
if [ $? -eq 0 ]
then
echo "on continue"
else
exit 1
fi
# ce script crée une sauvegarde de /etc
#************************************************#
# VARIABLES
#************************************************#
FILEOUT="$(date +%F)-SauvegardeDuRepertoireETC"
#************************************************#
# copie du dossier /etc dans une archive
#************************************************#
#non compressé
# sudo tar -cvf $FILEOUT.tar /etc/
#compressé
sudo tar -zcvf $FILEOUT.tar.gz /etc/
# On donne des bons droits pour l'utilisateur
sudo chmod 550 $FILEOUT.tar*
sudo chown $USER $FILEOUT.tar*
echo "appuyer sur Entrée pour continuer..."
read -r
exit 0
ici j'ajoute un script qui va sauvegarder un de vos dossiers personnels...
ici ~/.local/share mais ça se change très facilement !
#!/bin/bash
# ----------------------------------------------
# nomlogiciel="${0##*/}"
FONCTION="# ce script crée une sauvegarde de :"
un_dossier="$HOME/.local/share"
# VERSION="alpha"
# NOTES DE VERSIONS
# ----------------------------------------------
#
# ----------------------------------------------
leTexte="$FONCTION
${un_dossier}
continuer ?"
zenity --question --width=300 --height=150 --text="$nomlogiciel - V $VERSION" --text="$leTexte"
if [ $? -eq 0 ]
then
echo "on continue"
else
exit 1
fi
#************************************************#
# VARIABLES
#************************************************#
un_dossier_out="${un_dossier}"
remplacement="-"
un_dossier_out="${un_dossier_out//\//$remplacement}"
un_dossier_out="${un_dossier_out//'_'/$remplacement}"
un_dossier_out="${un_dossier_out//'~'/$remplacement}"
un_dossier_out="${un_dossier_out//'.'/$remplacement}"
# un_dossier_out="${un_dossier_out//'-'/$remplacement}"
# un_dossier_out="${un_dossier_out//'+'/$remplacement}"
# un_dossier_out="${un_dossier_out//']'/$remplacement}"
# un_dossier_out="${un_dossier_out//'['/$remplacement}"
un_dossier_out="${un_dossier_out//'---'/$remplacement}"
un_dossier_out="${un_dossier_out//'--'/$remplacement}"
#~ un_dossier_out="${un_dossier_out//$modele/$remplacement}"
# echo "${un_dossier_out}"
FILEOUT="$(date +%F)-SauveRep-${USER}${un_dossier_out}"
echo "FILEOUT => ${FILEOUT}"
# exit 14
#************************************************#
# copie du dossier dans une archive
#************************************************#
#non compressé
# tar -cvf "$FILEOUT.tar" "${un_dossier}"
#compressé
tar -zcvf "$FILEOUT.tar.gz" "${un_dossier}"
# chmod 660 "$FILEOUT.tar"*
#chown $USER "$FILEOUT.tar"*
echo "appuyer sur Entrée pour continuer..."
read -r
exit 0
Les programmes pour faire tout cela
On ne va pas se quitter comme cela... pour dire vrai tout commence maintenant que vous savez de quoi se compose votre système.
Vous devez savoir que des programmes peuvent sauvegarder tout ou partie de votre système et / ou de vos documents.
Vous pouvez faire des sauvegardes incrémentielles (on conserve des versions antérieures) ou des images qu'il faudra mettre à jour. Une ancienne façon de faire était d'utiliser un logiciel Rsync et son interface graphique Grsync qui permet de faire une copie d'une ensemble de fichiers d'une arborescence et d'ajouter les nouveautés au fur et à mesure du temps pour garder des versions même antérieures particulièrement lors des suppressions ou déplacements. Il existe aussi des logiciels qui font une copie conforme de votre système et la met à jour dans le temps (Time Machine, très connu dans le monde des mac)... vous pouvez faire des images d'une ou plusieurs partitions voire d'un disque complet (mais cela demande de la place).
Vous pouvez gérer une bonne partie de la conservation de vos documents simplement en les copiant sur un disque dur externe.
Je suis RAID ! ...
"je s'appelle groot !"
En informatique, on ne cherche pas à éviter les pannes mais on cherche à éviter les pertes de données.
Je ne peux pas parler des sauvegardes sans parler des montages en RAID. Le RAID est une façon de conserver en place et en
permanence vos documents et systèmes en multipliant les supports de stockage. Une autre utilisation du raid est pour augmenter les performances de vos sauvegardes mais ce n'est pas le sujet ici. Je parlerai de conservation.
Le raid est indexé avec des numéros ou on donne aussi des noms :
par exemple le raid 1 aussi appelé mirroring est utilisation de deux disques, l'un étant une copie exacte de l'autre. Chaque modification du disque principal est répercutée sur l'esclave pour garder la copie parfaite à quelques millièmes, centièmes, dixièmes ou secondes près.
Autre raid connu, le raid 5 qui réparti les données sur au moins 3 disques de façon à pouvoir recréer un des disques qui viendrait à lâcher avec les données des autres disques sans pour autant arrêter d'utiliser ces disques (on parle de mode dégradé). L'utilisation de plus de disques permettra de supporter des pannes de plus de disques au même moment ce qui réduit encore les risques de perte de données.
Ensuite on peut superposer les RAID en faisant un raid 1 d'un raid 5 (soit 3 disques en raid 5 doublés ; soit 6 disques en tout)... et pas obligatoirement sur la même machine... mais il faut savoir que tous les raids de conservation perdent de la place pour mettre en place cette stratégie. Pour le raid 1, un disque entier est en double donc cela divise la place totale par deux, pour le raid 5 jusqu'à un disque entier sur la grappe peut être "perdu" pour le hashage spécifique à ce format.
NB : Pour le calcul, 1 To de plusieurs disques en raid est différent d'1 To sur un seul disque dur... on n'aura pas la même taille au final ni la même fiabilité.
NB 2 : plus de disques dans une tour veut dire besoin d'une alimentation plus forte et plus stable !
NB 3 : une discussion sur ce forum parle de qu'est ce qu'un serveur : il suffit de comparer le poids d'un serveur et d'une tour de bureautique pour comprendre que ce n'est pas le même type de matériel.