Documentation française pour antiX

Sauvegarder simplement le répertoire Live-usb-storage

Contexte

antiX est en mode frugal, ou Live-usb, sans aucune persistance d'aucune sorte (c'est le cas pour l'auteur).
Et on veut sauvegarder facilement et rapidement le répertoire Live-usb-storage.
antiX propose un outil de sauvegarde, luckyBackup, mais cela semble trop « compliqué », même après avoir lu la page qui lui est consacrée.

Solutions proposées

Solution rsync

Pour sauvegarder le contenu du répertoire /home/demo/Live-usb... et ne copier ensuite que les fichiers modifiés, les nouveaux fichiers, les nouveaux sous-répertoires, la commande suivante convient :

rsync --mkpath -urlv /home/demo/Live-usb.../ /media/[périphérique]/[emplacement_sur_le_périphérique]/

À la première exécution, la commande ne fera pas de détail et on pourra observer le travail accompli.
Lors des sauvegardes suivantes, seuls les fichiers modifiés, les nouveaux fichiers, les nouveaux répertoires et leur contenu seront copiés.
Avantage : aucune suppression n'est à craindre puisqu'il ne s'agit pas d'une synchronisation.

Partant, il est possible d'écrire un tout petit programme simple qui pourrait ressembler à ceci :

____________________ Début du script ____________________

#! /bin/bash
# sauvegarder son /home/demo/Live-usb... puis les seuls fichiers modifiés, les nouveaux fichiers...
uuid_cible=[copier ici uuid lecteur cible obtenue avec la commande blkid]
dev_cible=`blkid | grep $uuid_cible | cut -d":" -f1`
lect_cible=`mount | grep $dev_cible | awk '{ print $3}'`
chemin_sauvegarde=Svg_Live_usb_storage/
clear
# vérifie si le lecteur cible est monté, sinon boucle jusqu'à ce qu'il le soit
if [ -z $lect_cible ]
then
mount | grep "$dev_cible"
mont=$?
while [ $mont = 1 ] ; do
clear
read -p "
=================A V I S=================
Le lecteur de destination semble ne pas être monté sur $dev_cible.

Vérifiez qu'il est bien branché et montez-le.

Puis, appuyez sur une touche pour continuer
ou
appuyez sur <Ctrl><Alt><C> pour abandonner.

                      Merci !
=========================================
" go
mount | grep $dev_cible
mont=$?
echo $mont
done
fi
lect_cible=`mount | grep $dev_cible | awk '{ print $3}'`
clear
# synchronise /home/demo/Live-usb-storage avec le lecteur cible
echo "================================="
rsync --mkpath -urlv /home/demo/Live-usb-storage/ $lect_cible/$chemin_sauvegarde
read -p "=================================

C'est terminé !
Pour quitter et fermer le terminal, veuillez appuyer
sur une touche quelconque et validez avec <Entrée>...

                             Merci & Au revoir !
"
# ferme la fenêtre
kill -9 $PPID

_____________________ Fin du script _____________________

Si on souhaite l'utiliser, quelques variables doivent être mises à jour :

    uuid_cible : c'est l'uuid du lecteur qu'il conviendra d'y copier. Il peut être obtenu avec la commande blkid ;
    chemin_sauvegarde : c'est l'endroit du lecteur où on veut que les données soient copiées. Si la destination n'existe pas, pas de stress, elle sera créée par le script grâce à l'option --mkpath

Et c'est tout.

Ensuite, ce script peut être copié dans une page vierge de son éditeur de texte préféré.
On l'enregistre avec le nom qui convient.
Puis, dans un terminal à l'endroit de stockage du script, on tape :

chmod a+x [nom_donné_au_script]

pour rendre le script exécutable.

Pour l'utiliser, on ouvre un terminal à l'endroit de stockage du script et on tape :

./[nom_donné_au_script]
On valide avec <Entrée>.

Solution 7z

Il est possible d'utiliser 7z pour faire ce travail.
Cette solution présentera l'avantage de compresser les données et, par conséquent, de prendre (un peu) moins de place.

On veut sauvegarder Live-usb-storage, ses fichiers, ses sous-répertoires, les liens symboliques en tant que liens et pour les fois suivantes mettre à jour l'archive.

En ligne de commandes, on peut taper ceci :

7z u -r -snl /[lecteur]/[chemin_de_destination]/[nom_du_fichier_compressé.extension] /home /demo/Live-usb-storage/

u : pour la mise à jour de l'archive. Si elle n'existe pas, elle est créée à la première exécution. Les fois suivantes, le fichier compressé est mis à jour des nouveautés et des modifications. Les fichiers, répertoires supprimés dans la source ne sont pas effacés du conteneur .zip.
Note
Si on désire protéger le fichier avec un mot de passe, on ajoute l'option -p après « 7z u ».
Il vous sera demandé de saisir deux fois le mot de passe de votre choix.

Soit, on garde cette ligne de commande sous le coude et on la copie dans un terminal selon son bon vouloir après y avoir apporté les adaptations utiles et nécessaires.
Soit, on écrit un petit programme qui s'occupera de tout, tout seul (ou presque).

En voici un :

____________________ Début du script ____________________

#! /bin/bash
# sauvegarder son /home/demo/Live-usb... puis les seuls fichiers modifiés, les nouveaux fichiers...
uuid_cible=18FFD8F463380C30
dev_cible=`blkid | grep $uuid_cible | cut -d":" -f1`
lect_cible=`mount | grep $dev_cible | awk '{ print $3}'`
chemin_svg=svg_L_u_s
nom_arch=svg_L_u_s.zip
clear
if [ -z $lect_cible ]
then
mount | grep "$dev_cible"
mont=$?
echo $mont
while [ $mont = 1 ] ; do
clear
read -p "
=================A V I S=================
Le lecteur de destination semble ne pas être monté sur $dev_cible.

Vérifiez qu'il est bien branché et montez-le.

Puis, appuyez sur une touche pour continuer...

          Merci !
=========================================
" go
mount | grep $dev_cible
mont=$?
echo $mont
done
fi
lect_cible=`mount | grep $dev_cible | awk '{ print $3}'`
clear
echo "================================="
7z u -snl -r $lect_cible/"$chemin_svg"$nom_arch /home/demo/Live-usb-storage/
read -p "=================================

C'est terminé !
Pour quitter et fermer le terminal, veuillez appuyer
sur une touche quelconque et validez avec <Entrée>...

                             Merci & Au revoir !
"
kill -9 $PPID

____________________ Fin du script ____________________

Si on souhaite l'utiliser, quelques variables doivent être mises à jour :

uuid_cible : c'est l'uuid du lecteur qu'il conviendra d'utiliser. Il peut être obtenu avec la commande blkid ;
chemin_sauvegarde : c'est l'endroit du lecteur où on veut que les données soient copiées. Par défaut, le répertoire de destination est « svg_L_u_s ». On peut bien évidemment le modifier. Si le répertoire de destination n'existe pas, pas de stress, il sera créé par 7z.
nom_arch : c'est le nom du fichier compressé avec son extension. Par défaut, le fichier sera nommé « svg_L_u_s.zip ».

Et c'est tout.

Ensuite, ce script peut être copié dans une page vierge de son éditeur de texte préféré.
On l'enregistre avec le nom qui convient.
Puis, dans un terminal à l'endroit de stockage du script, on tape :

chmod a+x [nom_donné_au_script]

pour rendre le script exécutable.

Pour l'utiliser, on ouvre un terminal à l'endroit de stockage du script et on tape :

./[nom_donné_au_script]
On valide avec <Entrée>.

Pour restaurer cette sauvegarde, on ouvre le gestionnaire de fichiers et on va à l'endroit de stockage du fichier compressé.
On double-clique sur le conteneur .zip (ou le format qui a été retenu).

Note
L'archive compressée a été protégée par un mot de passe ?
Aucun problème !
Après avoir double-cliqué dessus, un terminal viendra s'enquérir du sésame pour extraire le contenu du conteneur.

J'imagine que ces petits programmes peuvent encore être améliorés : ne vous gênez pas et partagez vos découvertes !


Il est possible qu'on cherche à réaliser des sauvegardes plus complexes. On consultera alors la page luckyBackup, programme intégré dans la version Full d'antiX.


Pour une sauvegarde rapide, sans script, pratiquement sans configuration, la page Sauvegarde express peut être un bon choix.
 

script bash sauvegarde live usb antiX rsync 7z compression synchroniser

Retourner en haut