Archiver son ordi [était:graver un CD]
Michel D'HOOGE
list.dhooge at gmail.com
Jeu 5 Oct 06:05:30 UTC 2006
On Tuesday 03 October 2006 23:13, Michel D'HOOGE wrote:
> Après beaucoup d'hésitations et d'essais, je me suis moi-même stabilisé sur
> le duo dar/kdar. Je fais une petite synthèse et je te l'envoie ASAP ! --
Voici donc une introduction à l'archivage de ses données avec dar
Comme le dit la page de manuel de dar (en anglais sur ma machine), dar est un
outil complet de sauvegarde, visant les supports de type disques (disquette,
CD, DVD, ...). dar est capable de faire des archives incrémentales (juste ce
qui a changé depuis la dernière fois) en se basant soit sur une archive
précédente (si elle est encore accessible), soit uniquement sur la liste des
fichiers (extraite de l'archive et donc beaucoup plus petite sur le disque).
dar permet en plus de crypter à la volée ses archives pour éviter
toute "fuite" à partir d'un disque d'archive (ça ne sert en effet à rien de
restreindre les droits en lecture dans son répertoire si les sauvegardes sont
lisibles par n'importe qui).
kdar est une interface graphique pour KDE (mais qui peut aussi tourner avec
Gnome) pour créer, consulter et récupérer ses archives. Selon moi, l'intéret
est surtout pour la consultation et la récup. Ceci peut cependant évoluer si
kdar s'améliore. Mis à part quelques bugs purement IHM, la plus grosse
contrainte actuellement est de ne pas pouvoir passer root lors de l'exécution
de dar (cf ci-dessous).
Les présentations faites, revenons maintenant au besoin d'archivage. Le
premier problème est que certains fichiers ne sont pas lisibles par
l'utilisateur courant (fichiers système ou d'un autre utilisateur). Il faut
donc lancer l'archivage en étant 'root'. Comme je n'ai pas toujours
suffisamment confiance dans les outils graphiques, je préfère passer par la
ligne de commande dans une console. Ça a en plus l'avantage dans le cas d'une
tâche périodique (comme doit l'être l'archivage de ses données) d'être plus
facilement reproductible.
J'ai donc créer plusieurs fichiers qui me permettent d'automatiser (ou
presque) mes sauvegardes.
Le premier fichier contient les options de dar communes à tous les profils.
J'utilise les versions longues des paramètres car c'est toujours plus facile
à relire. Les lignes commençant par # sont des commentaires. Les lignes
finissant par : permettent à dar de filtrer les options selon le type
d'actions. Ce n'est pas indispensable, mais je l'ai ajouté pour supprimer des
avertissements lors de l'affichage du contenu.
Voici en gros ce que déclare ce fichier :
* Toutes les archives sont compressées avec bzip2 et cryptées avec
l'algorithme blowfish (le mot de passe est demandé à l'exécution).
* Les fichiers 'backup' (se terminant pas ~) et les archives dar ne sont pas
archivés.
* Tout ce qui est multimedia (images, sons, vidéos) n'est pas compressé. Ça
fait perdre du temps sur des gros fichiers pour un gain en place souvent
minime.
À noter qu'il me semble de toute façon préférable de directement archiver ces
types de fichiers pour pouvoir les relire sans outil spécial (à part les
lecteurs multimedia, bien sûr ;-)
# Fichier commun.dar-options
# contient les options communes
# Encryption
all:
--key blowfish:
create:
--key-ref blowfish:
# File exclusions
create:
--exclude ".*~"
--exclude "*~"
--exclude "*.dar"
# Compression
create:
--bzip2
--mincompr 150
# Fichiers pour lesquels la compression est inutile
--exclude-compression "*.avi"
--exclude-compression "*.bz2"
--exclude-compression "*.gif"
--exclude-compression "*.gz"
--exclude-compression "*.jpg"
--exclude-compression "*.mov"
--exclude-compression "*.mp3"
--exclude-compression "*.mpg"
--exclude-compression "*.ogg"
--exclude-compression "*.pbm"
--exclude-compression "*.png"
--exclude-compression "*.pnm"
--exclude-compression "*.Z"
--exclude-compression "*.zip"
Ensuite, j'ai un fichier de config pour chaque "besoin". Voici par exemple la
config pour la sauvegarde des répertoires utilisateurs (dans mon cas : /home
et certains répertoires dans /shared). L'archive est stockée dans le
répertoire /shared/Backup. Pour les archives incrémentales (rappel : on ne
sauvegarde que les fichiers nouveaux ou modifiés par rapport à la dernière
fois), la "convention" veut qu'on ajoute "_diff" au nom du fichier, mais ce
n'est pas obligatoire.
# Fichier users.dar-options
# Archivage des répertoires des utilisateurs
# Pour créer une archive complète, mettre en commentaire '--ref' ci-dessous
# Nom de l'archive
--create "/shared/Backup/users_20061004_diff"
# Archive de référence pour les sauvegardes incrémentales
--ref "/shared/Backup/users_20060927_diff"
# Répertoires à archiver
--fs-root "/"
--go-into "home"
--go-into "shared/Doc Tech"
--go-into "shared/Documents"
# Auto-sauvegarde des fichiers de config de dar
# (les fichiers .dar sont marqués à ignorer par common.dar-options)
--go-into "shared/Backup"
# Optionnel : /etc contient beaucoup de fichiers sensibles qui
# peuvent être "mal" modifiés lors d'une mise à jour !
#--go-into "etc"
# Répertoires et fichiers "potentiellement volumineux" à exclure
# de la sauvegarde
--prune "home/*/cache"
--prune "home/*/Cache"
--prune "home/*/.eclipse"
--prune "home/*/.local/share/Trash"
--prune "home/*/.thumbnails"
--prune "home/*/.xsession-errors"
# Options communes à tous les archivages
# (À inclure à la fin pour que la gestion des conditions par dar
# soient prises en compte)
--batch "common.dar-options"
Une fois ces fichiers créés, on peut enfin commencer à archiver/sauvegarder
ces données. La première fois, il faut faire une archive complète, dite "de
référence" (sans '_diff' dans le nom) qui va contenir tous les fichiers.
Après, on peut faire des archives incrémentales, beaucoup plus petites (et un
peu plus rapide).
La commande à lancer est la suivante ('sudo' permet de lire tous les
fichiers).
$ sudo dar -B users.dar-options
Ensuite, on peut être tenté de vérifier le contenu de l'archive (c'est surtout
intéressant pour les archives incrémentales, pour voir ce qui a changé depuis
la précédente sauvegarde).
# Écrit dans le fichier dar.out la liste des fichiers
$ dar -l users_20061004_diff -B common.dar-options>dar.out
# Recherche les fichiers ajoutés et les trie par taille décroissante
$ egrep "^\[Saved" dar.out|sort --numeric-sort --reverse +6|less -S
# Recherche les fichiers supprimés
$ egrep "^\[ +REMOVED" dar.out|less -S
Voici un autre exemple de fichier de configuration qui archive mes répertoires
de devéloppement.
# Fichier dev.dar-options
# Archivage différentiel des répertoires de développement
# Pour créer une archive complète, mettre en commentaire '--ref' ci-dessous
# Nom de l'archive
--create "/shared/Backup/dev_20061004_diff"
# Archive de référence pour les différentiels
#--ref "/shared/Backup/dev_20060907"
--ref "/shared/Backup/dev_20060927_diff"
# Répertoire de départ de l'archive
--fs-root "/shared/dev/"
# Répertoires à ignorer
--prune "*/cache"
--prune "*/Cache"
# Options communes à tous les archivages
# (À inclure à la fin pour que la gestion des conditions par dar
# soient prises en compte)
--batch "common.dar-options"
Enfin, voici une dernière config qui me permet d'archiver tout le reste du
système. Je l'exécute moins souvent car c'est plus gros et plus long et
a-priori moins sensible car il s'agit principalement de fichiers extraits des
paquets Debian/Ubuntu. On peut voir que ça part de la racine, mais que
beaucoup de répertoires sont ignorés...
# Fichier root.dar-options
# Archivage des parties "fixes" du système
# Pour créer une archive complète, mettre en commentaire '--ref' ci-dessous
# Nom de l'archive
--create "/shared/Backup/root_20060929_diff"
# Archive de référence pour les différentiels
#--ref "/shared/Backup/root_20060819_cat"
--ref "/shared/Backup/root_20060916_diff"
# Répertoire de départ de l'archive
--fs-root "/"
# Répertoires à ignorer
--prune "*/cache"
--prune "dev"
--prune "home/*"
--prune "media"
--prune "mnt"
--prune "proc"
--prune "shared"
--prune "sys"
--prune "tmp"
--prune "var/cache"
--prune "var/lock"
--prune "var/run"
--prune "var/tmp"
# Options communes à tous les archivages
# (À inclure à la fin pour que la gestion des conditions par dar
# soient prises en compte)
--batch "common.dar-options"
Voilà. Maintenant, y'a plus qu'à ! Et bien sûr, graver sur un disque le/les
fichier(s) .dar créé(s).
J'ambitionne un jour de saupoudrer tout ça d'un peu de python pour générer
automatiquement les noms de fichiers avec la bonne date, pour afficher les
fichiers ajoutés et supprimés, pour offrir le choix entre archive complète ou
incrémentale, .... À moins que ça puisse s'intégrer dans kdar.
Mais "un jour", uniquement ;-)
--
Michel
-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: non disponible
Type: application/pgp-signature
Taille: 483 octets
Desc: non disponible
URL: <https://lists.ubuntu.com/archives/ubuntu-fr/attachments/20061005/7b5edab2/attachment.pgp>
Plus d'informations sur la liste de diffusion ubuntu-fr