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