Le processus simple et de séléctionner les sources (fichier ou répertoire) à collecter dans un fichier texte, un élément par ligne.
Il est fourni ensuite à tar comme liste de fichiers à sauvegarder dans un
tarball.
Il est conseillé de diviser en plusieurs tarballs les types de fichiers comme sauvegarder à part les configs et les documents, de sorte à ne pas avoir un unique tarball géant à ouvrir pour récupérer un simple fichier de configuration.
Avec un navigateur de fichiers comme Dolphin, on peut simplement séléctionner
les fichiers et répertoires, faire Édition > Copier et leur chemin complet
sera mis dans le "presse papier". Le navigateur ne traîte pas la copie de
fichiers directement, il n'y a pas de risques d'obstruction de la mémoire.
On peut ensuite coller cette liste dans un fichier texte et l'on aura une
simple liste de fichiers et répertoires pour alimenter tar.
À noter que la liste des fichiers est préfixé par le nom de protocole utilisé
pour accéder aux fichiers, tel que file:// pour un fichier local,
ftp:// pour un fichier sur un serveur FTP, etc.. Retirez le et n'essayez
pas de copier autre chose qu'un fichier local, tar ne pourra probablement
pas le traiter.
Partant du principe qu'un fichier files.txt a été créé avec le contenu
suivant (selon la méthode de Séléction des fichiers précédemment décrite):
/home/goldorak/pngquant/Screenshot_20180123_150045.png /home/goldorak/pngquant/Screenshot_20180123_162825.png /home/goldorak/Sveetoy-sass-0.8.0.zip
Avant de continuer il est fortement recommandé de fermer toute les
applications utilisant les sources listés dans le fichier sinon vous risquez
des pertes, un échec du processus ou même bloquer tar de façon muette et
infinie dans certains cas (selon le mode d'ouverture du fichier).
On peut alors procéder à la sauvegarde de la manière suivante:
tar -cvzf mybackup.tar.gz --dereference --hard-dereference --files-from=files.txt
L'option cvzf créé un tarball compressé avec gunzip en mode verbeux.
tar parcours de façon récursive les répertoires qui lui sont indiqués.
Les options --dereference et --hard-dereference forcent la copie de la
cible de liens symboliques ou hard.
Les chemins absolus seront convertis en chemin relatif au tarball de sorte à ce que décompresser l'archive ne risque pas d'écraser les chemins absolus ciblés et les crééront depuis l'emplacement courant.
Ajouter l'option --absolute-names à la commande de sauvegarde si vous
souhaitez conserver le chemin absolu complet.
Les lignes du fichier des sources qui commenceront par un - seront
considérés comme des options pour tar. Si vous avez des chemins commencant
par -, ajouter l'option --verbatim-files-from pour vous assurer qu'ils
seront bien considérer comme des fichiers et ne perturberont pas le processus
de sauvegarde.
Si éventuellement votre de séléction de sources est "trop large" vous pouvez
exclure des fichiers avec l'option --exclude=PATTERN, consultez l'aide
de tar pour plus de détails sur les motifs d'exclusions possibles.
La restauration consiste juste à ouvrir l'archive:
tar -xvzf mybackup.tar.gz
Tout les fichiers seront créés à partir de l'emplacement courant. L'arborescence récursive des fichiers et répertoires sauvegardés est restaurée intégralement mais depuis l'emplacement courant.
Rsync est un outil de synchronisation qui peut servir pour sauvegarder mais un tarball est utilisable plus aisément et depuis un système linux basique.
En outre il ne compresse rien, son utilisation demande plus d'espace disque.
Par contre Rsync peut être plus rapide car après la première synchronisation il ne retraite pas l'intégralité des fichiers, seulement ceux supprimés ou nouvellement créés.
Rsync est un outil à utiliser périodiquement, tar est un outil à utiliser de façon ponctuel.
Pour éviter des déconvenues il peut être utile de valider que les chemins contenu dans un fichier de listing à utiliser pour une sauvegarde, n'a pas de chemins invalides.
Un simple script Python est fourni avec ce document pour valider ces fichiers de listing.