Objectif : Ne plus avoir à me soucier d'un "crash" de mon disque interne de 1 Tib sur mon système Gnu / Linux Debian Wheezy
L'intérêt de Dirvish par rapport à une sauvegarde "rsync" classique est que l'on peut remonter dans le temps et avoir différentes versions d'un même fichier à différentes dates et réparer une erreur sur un fichier à partir d'un certain moment, par exemple ...
Synopsis
2 - Configurer Dirvish et son execution quotidienne.
3 - Initialiser les sauvegardes et vérifications diverses.
J'ai écris ce tutoriel parce que cette installation m'a pris quelques jours, et je n'ai pas trouvé de tuto qui soit détaillé sur le Web ( en français en tout cas ).
Je débutes en Perl, c'est vaste, je ne connais pas bien Dirvish non plus, et ma mémoire ... pas terrible ! Ce tuto me servira aussi à moi je pense.
Matériel : CM Gigabyte GA-B75M-D3V / i5 3450 Socket 1155 / 4Gib / 1 Tib Seagate Barracuda 7100 tours / minutes . PC assemblé par mes soins.
OS : Gnu / Linux Debian Wheezy Gdm3 Xfce4 avec un noyau Linux : 3.2.0-4-amd64
Logiciel de sauvegarde : Dirvish . Ce soft écrit en Perl n'a rien a envier à Time Machine d'Apple par exemple, fonctionne aussi bien en local qu'en client / serveur.
Disque externe : My Passport 500 Go , partition de sauvegarde étendue de 400 Gib, labellisée "sauvegarde", sur port USB 2.0 ( j'ai des soucis en USB3 sur ce disque USB2 )
J'ai découvert ce soft dans Les Cahiers de l’Admin Debian Squeeze , livre qui m'aide bien souvent quand j'ai des soucis.
Je suis en "testing" parce que mon matériel est trop récent et la version "stable" ne tourne pas dessus.
1 - Satisfaire les pré-requis à l'install de Dirvish
La première source de documentation pour installer Dirvish se trouve évidemment sur le site de Dirvish
On y lit que les pré-requis pour cette installation sont :
- rsync version 2.5.6 ou supérieure# rsync --version
- perl5 et les modules perl :
POSIX
Getopt::Long
Time::ParseDate
Time::Period by Patric Ryan
- Beaucoup d'espace disque, ils recommandent aussi d'utiliser LVM
- Pour ssh, je ne m'en suis pas occupé pour le moment parce que ma sauvegarde est locale
rsync version 3.0.9 protocol version 30
# perl --version
This is perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-linux-gnu-thread-multi
(with 75 registered patches, see perl -V for more detail)
Copyright 1987-2011, Larry Wall
Pour avoir un historique de commande sous CPAN
# aptitude install libterm-readline-gnu-perl
Tout va bien jusque là, il faut maintenant installer les modules Perl :
- Getopt::Long
- Time::ParseDate
- Time::Period
Le module POSIX est installé par défaut.
Pour installer un module Perl, on utilise la commande cpan ( Comprehensive Perl Archive Network )
Si c'est la première fois que cpan est lancé, un minimun de configuration est indispensable :
# cpan --version
/usr/bin/cpan version 1.57 calling Getopt::Std::getopts (version 1.06 [paranoid]),
running under Perl version 5.14.2.
[Now continuing due to backward compatibility and excessive paranoia.
See ``perldoc Getopt::Std'' about $Getopt::Std::STANDARD_HELP_VERSION.]
CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.
Would you like to configure as much as possible automatically? [yes]
ALERT: 'make' is an essential tool for building perl Modules.
Please make sure you have 'make' (or some equivalent) working.
Autoconfigured everything but 'urllist'.
Now you need to choose your CPAN mirror sites. You can let me
pick mirrors for you, you can select them from a list or you
can enter them by hand.
Would you like me to automatically choose some CPAN mirror
sites for you? (This means connecting to the Internet) [yes]
Trying to fetch a mirror list from the Internet
Fetching with LWP:
http://www.perl.org/CPAN/MIRRORED.BY
Looking for CPAN mirrors near you (please be patient)
................................... done!
New urllist
http://mirror.ibcp.fr/pub/CPAN/
http://ftp.sunet.se/pub/lang/perl/CPAN/
http://mirrors.teentelecom.net/CPAN/
Autoconfiguration complete.
commit: wrote '/root/.cpan/CPAN/MyConfig.pm'
You can re-run configuration any time with 'o conf init' in the CPAN shell
Nothing to install!
On s'assure donc de la présence de make :
# aptitude install make
Les NOUVEAUX paquets suivants vont être installés :
make
0 paquets mis à jour, 1 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de télécharger 396 ko d'archives. Après dépaquetage, 1 172 ko seront utilisés.
Prendre : 1 http://ftp2.fr.debian.org/debian/ wheezy/main make amd64 3.81-8.2 [396 kB]
396 ko téléchargés en 6s (61,8 ko/s)
Sélection du paquet make précédemment désélectionné.
(Lecture de la base de données... 168000 fichiers et répertoires déjà installés.)
Dépaquetage de make (à partir de .../make_3.81-8.2_amd64.deb) ...
Traitement des actions différées (« triggers ») pour « man-db »...
Paramétrage de make (3.81-8.2) ...
On exécute donc cpan :
# cpan
Si c'est la première fois que cpan est lancé, vous aurez sans doute un message vous demandant de le mettre à jour, faites le.
Installez aussi YAML sinon vous aurez des avertissements à propos desquels je ne sais rien ! pas eu le temps d'approfondir !
cpan[1]> install YAML
YAML is up to date (0.84).
Enfin on installe les modules réclamés par Dirvish :
cpan[2]> install POSIX
Running install for module 'POSIX'
The most recent version "1.31" of the module "POSIX"
is part of the perl-5.17.4 distribution
Ok pour POSIX
cpan[3]>install Getopt::Long
Getopt::Long is up to date (2.38)
C'est ok pour ce module aussi mais c'est parce que je l'ai installé, il ne l'était pas
cpan[4]> install Time::ParseDate
Time::ParseDate is up to date (2011.0517)
cpan[5]> install Time::Period
Time::Period is up to date (1.23).
Pour mettre à jour CPAN :
cpan[6]> upgrade
ça peut prendre 20-30 minutes
Ça y est, Perl est installé correctement pour que Dirvish puisse l'exploiter comme il l'entend. Si ce n'est pas votre cas des commandes comme :
# dirvish-runall
ne fonctionneront pas et il faudra faire fonctionner Dirvish en manuel, comme je l'ai fait pendant quelques temps.
À ce point il est bien sûr indispensable d'Installer Dirvish :
# aptitude install dirvish
Les NOUVEAUX paquets suivants vont être installés :
dirvish libtime-modules-perl{a} libtime-period-perl{a} ssh{a}
0 paquets mis à jour, 4 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de télécharger 115 ko d'archives. Après dépaquetage, 458 ko seront utilisés.
Voulez-vous continuer ? [Y/n/?]
Prendre : 1 http://ftp2.fr.debian.org/debian/ wheezy/main libtime-modules-perl all 2011.0517-1 [38,2 kB]
Prendre : 2 http://ftp2.fr.debian.org/debian/ wheezy/main libtime-period-perl all 1.20-8 [15,2 kB]
Prendre : 3 http://ftp2.fr.debian.org/debian/ wheezy/main dirvish all 1.2.1-1.2 [60,9 kB]
Prendre : 4 http://ftp2.fr.debian.org/debian/ wheezy/main ssh all 1:6.0p1-4 [1 240 B]
115 ko téléchargés en 5s (20,7 ko/s)
Sélection du paquet libtime-modules-perl précédemment désélectionné.
(Lecture de la base de données... 168034 fichiers et répertoires déjà installés.)
Dépaquetage de libtime-modules-perl (à partir de .../libtime-modules-perl_2011.0517-1_all.deb) ...
Sélection du paquet libtime-period-perl précédemment désélectionné.
Dépaquetage de libtime-period-perl (à partir de .../libtime-period-perl_1.20-8_all.deb) ...
Sélection du paquet dirvish précédemment désélectionné.
Dépaquetage de dirvish (à partir de .../dirvish_1.2.1-1.2_all.deb) ...
Sélection du paquet ssh précédemment désélectionné.
Dépaquetage de ssh (à partir de .../ssh_1%3a6.0p1-4_all.deb) ...
Traitement des actions différées (« triggers ») pour « man-db »...
Paramétrage de libtime-modules-perl (2011.0517-1) ...
Paramétrage de libtime-period-perl (1.20-8) ...
Paramétrage de dirvish (1.2.1-1.2) ...
Paramétrage de ssh (1:6.0p1-4) ...
À ce point il est bien sûr indispensable d'Installer Dirvish :
# aptitude install dirvish
Les NOUVEAUX paquets suivants vont être installés :
dirvish libtime-modules-perl{a} libtime-period-perl{a} ssh{a}
0 paquets mis à jour, 4 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de télécharger 115 ko d'archives. Après dépaquetage, 458 ko seront utilisés.
Voulez-vous continuer ? [Y/n/?]
Prendre : 1 http://ftp2.fr.debian.org/debian/ wheezy/main libtime-modules-perl all 2011.0517-1 [38,2 kB]
Prendre : 2 http://ftp2.fr.debian.org/debian/ wheezy/main libtime-period-perl all 1.20-8 [15,2 kB]
Prendre : 3 http://ftp2.fr.debian.org/debian/ wheezy/main dirvish all 1.2.1-1.2 [60,9 kB]
Prendre : 4 http://ftp2.fr.debian.org/debian/ wheezy/main ssh all 1:6.0p1-4 [1 240 B]
115 ko téléchargés en 5s (20,7 ko/s)
Sélection du paquet libtime-modules-perl précédemment désélectionné.
(Lecture de la base de données... 168034 fichiers et répertoires déjà installés.)
Dépaquetage de libtime-modules-perl (à partir de .../libtime-modules-perl_2011.0517-1_all.deb) ...
Sélection du paquet libtime-period-perl précédemment désélectionné.
Dépaquetage de libtime-period-perl (à partir de .../libtime-period-perl_1.20-8_all.deb) ...
Sélection du paquet dirvish précédemment désélectionné.
Dépaquetage de dirvish (à partir de .../dirvish_1.2.1-1.2_all.deb) ...
Sélection du paquet ssh précédemment désélectionné.
Dépaquetage de ssh (à partir de .../ssh_1%3a6.0p1-4_all.deb) ...
Traitement des actions différées (« triggers ») pour « man-db »...
Paramétrage de libtime-modules-perl (2011.0517-1) ...
Paramétrage de libtime-period-perl (1.20-8) ...
Paramétrage de dirvish (1.2.1-1.2) ...
Paramétrage de ssh (1:6.0p1-4) ...
2 - Configurer Dirvish
Fichiers permettant de piloter Dirvish :
/etc/dirvish/master.conf
puis 1 fichier par "vault" ( jeu de sauvegarde ) dans la "bank", espace de stockage où se feront les sauvegardes.
/bank/vault/dirvish/default.conf
Script de pilotage des sauvegardes :
/etc/dirvish/dirvish-cronjob
Autres commandes ( faire un man de dirvish )
dirvish(8)
dirvish.conf(5)
dirvish-runall(8)
dirvish-expire(8)
dirvish-locate(8)
ssh(1)
rsync(1)
Time::ParseDate(3pm)
strftime(3)
Sur mon disque externe "My Passport", j'ai nommée ma partition étendue de 400 Gib "sauvegarde", et lorsque je "plugue" mon disque externe, il est monté automatiquement dans :
# mount | grep sauvegarde
/dev/sdc5 on /media/sauvegarde type ext3 (rw,nosuid,nodev,relatime,sync,errors=continue,barrier=1,data=ordered,uhelper=hal)
Oui, je sais que je ferais mieux d'être en ext4 ... pas grave !
J'ai décidé de sauvegarder dans ma "bank" /media/sauvegarde, mes partitions suivantes :
/ ----------------------> vault : system
/usr ------------------> vault : usr
/var ------------------> vault : var
/home ----------------> vault: home
/home/private ------> vault : private
# ls -lh /media/sauvegarde/
total 44K
drwxr-xr-x 5 root root 4,0K févr. 5 09:58 home
drwxrwx--- 2 root root 16K avril 9 2012 lost+found
drwxr-xr-x 5 root root 4,0K févr. 5 10:04 private
drwxr-xr-x 5 root root 4,0K févr. 5 09:53 system
drwxr-xr-x 5 root root 4,0K févr. 5 09:53 usr
drwxr-xr-x 5 root root 4,0K févr. 5 09:53 var
Ceci m'a permit de construire mon /etc/dirvish/master.conf :
# cat /etc/dirvish/master.conf
Remarque importante : il faut absolument exclure .gvfs , sinon la sauvegarde du /home échouera lamentablement au bout de 2 heures ... grrrr .# /etc/dirvish/master.conf
# Créé par moi le dimanche 3 février 2013
#en suivant la doc http://www.dirvish.org/debian.howto.html
#
bank:
/media/sauvegarde
exclude:
*~
lost+found/
/var/tmp/
/var/run/
/var/lock/
/mnt/
/media/
/sys
/dev/
/proc/
/tmp/
/vmlinuz*
/initrd*
.gvfs
Runall:
system 22:00
var 22:00
usr 22:00
home 22:00
private 22:00
expire-default: +15 days
expire-rule:
# MIN HR DOM MON DOW STRFTIME_FMT
* * * * 1 +3 months
* * 1-7 * 1 +1 year
* * 1-7 1,4,7,10 1
* 10-20 * * * +4 days
# * * * * 2-7 +15 days
C'est Gnome qui créé ce système de fichier dans ~/ , qui de plus est vide ...
~ ls -lhd .gvfs
dr-x------ 2 seb seb 0 févr. 5 10:42 .gvfs
ls -lhdi .gvfs
1 dr-x------ 2 seb seb 0 févr. 5 10:42 .gvfs
Ayant eu le pb, j'ai fait une recherche sur google, et en fait peu de gens ont compris que dans ce répertoire est monté un système de fichier à propos duquel je ne sais pas grand chose à part qu'il sert au montage automatique des périphérique USB :
# mount |grep gvfs
gvfs-fuse-daemon on /home/seb/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
# cat /media/sauvegarde/system/dirvish/default.conf
# cat /media/sauvegarde/var/dirvish/default.conf# Ce fichier a été créé par moi le dimanche 3 février 2013
# en suivant la doc : http://www.dirvish.org/debian.howto.html
#
client: Speedi5
tree: /
xdev: true
index: gzip
image-default: %Y-%m-%d
exclude:
tmp
# cat /media/sauvegarde/usr/dirvish/default.conf# Ce fichier a été créé par moi le dimanche 3 février 2013
# en suivant la doc : http://www.dirvish.org/debian.howto.html
#
client: Speedi5
tree: /var
xdev: true
index: gzip
image-default: %Y-%m-%d
exclude:
var/cache/apt/archives
var/cache/man
tmp
var/tmp
# cat /media/sauvegarde/home/dirvish/default.conf# Ce fichier a été créé par moi le dimanche 3 février 2013
# en suivant la doc : http://www.dirvish.org/debian.howto.html
#
client: Speedi5
tree: /usr
xdev: true
index: gzip
image-default: %Y-%m-%d
exclude:
# Ce fichier a été créé par moi le dimanche 3 février 2013
# en suivant la doc : http://www.dirvish.org/debian.howto.html
#
client: Speedi5
tree: /home
xdev: true
index: gzip
image-default: %Y-%m-%d
exclude:
lost+found/
private/
seb/.gvfs/
# cat /media/sauvegarde/private/dirvish/default.conf
Arrivé à ce point, il faut modifier le script /etc/dirvish/dirvish-cronjob pour l'adapter à notre config :# Ce fichier a été créé par moi le dimanche 3 février 2013
# en suivant la doc : http://www.dirvish.org/debian.howto.html
#
client: Speedi5
tree: /home/private
xdev: true
index: gzip
image-default: %Y-%m-%d
exclude:
lost+found/
.gvfs/
# cat /etc/dirvish/dirvish-cronjob
1 #!/bin/sh
2 #
3 # commentaire de moi : modifié :
4 # -ligne 25 remplacée par ligne 26
5 # -ligne 41 mount_check /media/sauvegarde
6 # -Rajout ligne 43 et 44 pour sauvegarder la liste des paquets installés
7 #
8 # daily cron job for the dirvish package
9 #
10 if [ ! -x /usr/sbin/dirvish-expire ]; then exit 0; fi
11 if [ ! -s /etc/dirvish/master.conf ]; then exit 0; fi
12
13 mount_check() {
14 mntout=`tempfile -p mount`
15 mount $1 >$mntout 2>&1
16 if [ ! -d $1/lost+found ]; then # only works for "real" filesystems :-)
17 # (Yes, I know about reiserfs.)
18 echo "'mount $1' failed?! Stopping."
19 echo "mount output:"
20 cat $mntout
21 rm -f $mntout
22 exit 2
23 fi
24
25 #if stat $1 | grep 'Inode: 2[^0-9]' >/dev/null; then # ditto
26 if stat $1 | grep '/media/sauvegarde' >/dev/null; then # J'ai changé la ligne comme ça pour l'heure mais danger !
27 rm -f $mntout
28 return 0 # ok
29 fi
30 echo "$1 isn't inode 2 ?! Mount must have failed; stopping."
31 echo
32 stat $1
33 echo "mount output:"
34 cat $mntout
35 rm -f $mntout
36 umount $1
37 exit 2
38 } # Fin de la fonction mount_check()
39
40 # Example of how to mount and umount a backup partition...
41 mount_check /media/sauvegarde
42
43 # Avant de faire la sauvegarde on sauvegarde la liste des paquets installés :
44 /etc/cron.daily/liste-paquet.sh
45
46 # on effectue maintenant les sauvegardes :
47 /usr/sbin/dirvish-expire --quiet && nice --adjustment=-20 /usr/sbin/dirvish-runall --quiet
48 rc=$?
49
50 # umount /backup || rc=$?
51
52 exit $rc
Voilà !
Si le disque n'est pas connecté au moment où la tâche cron / anacron est lancée, le script s'arrête proprement ( avec un code d'erreur 2 dans les deux cas de figure ... )
Si le disque est présent, la sauvegarde démarre en tâche de fond avec une faible priorité ( 20 ) , ce qui ne dérange pas le travail ordinaire sur la machine.
Si le disque n'est pas connecté au moment où la tâche cron / anacron est lancée, le script s'arrête proprement ( avec un code d'erreur 2 dans les deux cas de figure ... )
Si le disque est présent, la sauvegarde démarre en tâche de fond avec une faible priorité ( 20 ) , ce qui ne dérange pas le travail ordinaire sur la machine.
# cd /etc/cron.daily
# ln -s /etc/dirvish/dirvish-cronjob dirvish-cronjob
# ls -lh /etc/cron.daily/dirvish-cronjob
lrwxrwxrwx 1 root root 28 févr. 4 00:15 /etc/cron.daily/dirvish-cronjob -> /etc/dirvish/dirvish-cronjob
3 - On va pouvoir ENFIN initialiser les sauvegardes : ben oui, pour le moment on n'a encore rien de concret ! ;-)
En ce qui me concerne j'avais 140 Gib à sauvegarder, ce qui m'a pris un peu moins de 2 H parce que j'ai lancée l'initialisation avec une priorité très élevée, pour accélérer le mouvement, sinon ça peut prendre la nuit !
De plus j'ai sérialisées les 5 initialisations des 5 jeux de sauvegardes et j'ai surveillé comment ça se passait, pas de pb :
# cd /media/sauvegarde
# for vault in system var usr home private ; do nice --adjustment=-20 dirvish --vault ${vault} --init ; done
Vous pouvez suivre l'évolution de l'initialisation à la fois avec la cde top ( surveiller les procesus rsync ) et aussi avec gnome-system-monitor :
$ gnome-system-monitor >/dev/null 2>&1 &
[2] 2155
Aujourd'hui ( 2013-02-05 ) cela fait 3 jours que j'ai mis ça en place, on peut vérifier ( j'ai éliminé les rep tree qui contiennent les données, parce que c'est trop volumineux ) :
# cd /media/sauvegarde
# for rep in system/ var/ usr/ home/ private/ ; do find ${rep} -regextype posix-egrep \! -iregex "${rep}.*tree.*" ;echo -e "\n\n" ; done
system/
system/2013-02-03
system/2013-02-03/log
system/2013-02-03/index.gz
system/2013-02-03/summary
system/2013-02-05
system/2013-02-05/log
system/2013-02-05/index.gz
system/2013-02-05/summary
system/2013-02-04
system/2013-02-04/log
system/2013-02-04/index.gz
system/2013-02-04/summary
system/dirvish
system/dirvish/default.hist
system/dirvish/default.conf
var/
var/2013-02-03
var/2013-02-03/log
var/2013-02-03/index.gz
var/2013-02-03/summary
var/2013-02-05
var/2013-02-05/log
var/2013-02-05/index.gz
var/2013-02-05/summary
var/2013-02-04
var/2013-02-04/log
var/2013-02-04/index.gz
var/2013-02-04/summary
var/dirvish
var/dirvish/default.hist
var/dirvish/default.conf
usr/
usr/2013-02-03
usr/2013-02-03/log
usr/2013-02-03/index.gz
usr/2013-02-03/summary
usr/2013-02-05
usr/2013-02-05/log
usr/2013-02-05/index.gz
usr/2013-02-05/summary
usr/2013-02-04
usr/2013-02-04/log
usr/2013-02-04/index.gz
usr/2013-02-04/summary
usr/dirvish
usr/dirvish/default.hist
usr/dirvish/default.conf
home/
home/2013-02-03
home/2013-02-03/log
home/2013-02-03/index.gz
home/2013-02-03/summary
home/2013-02-05
home/2013-02-05/log
home/2013-02-05/index.gz
home/2013-02-05/summary
home/2013-02-04
home/2013-02-04/log
home/2013-02-04/index.gz
home/2013-02-04/summary
home/dirvish
home/dirvish/default.hist
home/dirvish/default.conf
private/
private/2013-02-03
private/2013-02-03/log
private/2013-02-03/index.gz
private/2013-02-03/summary
private/2013-02-05
private/2013-02-05/log
private/2013-02-05/index.gz
private/2013-02-05/summary
private/2013-02-04
private/2013-02-04/log
private/2013-02-04/index.gz
private/2013-02-04/summary
private/dirvish
private/dirvish/default.hist
private/dirvish/default.conf
Si la première sauvegarde prends du temps, les suivantes prennent seulement quelques minutes : 10 minutes pour le sys entier ! : vivent les liens durs ! ;-)
Visualisons les fichiers default.hist, mis à jour à chaque sauvegarde et qui permettent à dirvish-expire de supprimer les sauvegardes ayant expirés ou justement de ne pas les supprimer et cela pour faire de la place ( ou pas ) juste avant la sauvegarde :
# for rep in system/ var/ usr/ home/ private/ ; do find ${rep} -regextype posix-egrep -iregex "${rep}dirvish/default.hist" -exec echo cat '{}' \; -exec cat '{}' \; ;echo -e "\n\n" ; done
cat system/dirvish/default.hist
#IMAGE CREATED REFERECE EXPIRES
2013-02-03 2013-02-03 22:39:32 default +1 year == 2014-02-03 22:38:48
2013-02-04 2013-02-05 09:53:35 2013-02-03 +15 days == 2013-02-19 22:00:00
2013-02-05 2013-02-06 12:39:17 2013-02-04 +15 days == 2013-02-20 22:00:00
cat var/dirvish/default.hist
#IMAGE CREATED REFERECE EXPIRES
2013-02-03 2013-02-03 22:40:47 default +1 year == 2014-02-03 22:39:32
2013-02-04 2013-02-05 09:53:53 2013-02-03 +15 days == 2013-02-19 22:00:00
2013-02-05 2013-02-06 12:39:43 2013-02-04 +15 days == 2013-02-20 22:00:00
cat usr/dirvish/default.hist
#IMAGE CREATED REFERECE EXPIRES
2013-02-03 2013-02-03 22:59:17 default +1 year == 2014-02-03 22:40:48
2013-02-04 2013-02-05 09:58:43 2013-02-03 +15 days == 2013-02-19 22:00:00
2013-02-05 2013-02-06 12:45:51 2013-02-04 +15 days == 2013-02-20 22:00:00
cat home/dirvish/default.hist
#IMAGE CREATED REFERECE EXPIRES
2013-02-03 2013-02-03 23:54:06 default +1 year == 2014-02-03 22:59:44
2013-02-04 2013-02-05 10:03:43 2013-02-03 +15 days == 2013-02-19 22:00:00
2013-02-05 2013-02-06 12:49:32 2013-02-04 +15 days == 2013-02-20 22:00:00
cat private/dirvish/default.hist
#IMAGE CREATED REFERECE EXPIRES
2013-02-03 2013-02-04 00:11:15 default +1 year == 2014-02-03 23:54:12
2013-02-04 2013-02-05 10:04:59 2013-02-03 +15 days == 2013-02-19 22:00:00
2013-02-05 2013-02-06 12:50:55 2013-02-04 +15 days == 2013-02-20 22:00:00
On voit le temps qu'a pris l'initialisation : de 22h39 à 0h11 -> 1h52, soit un peu moins de 2H pour 140 Gib
On voit aussi le temps consommé par la première sauvegarde incrémentale : de 09:53:35 à 10:04:59 -> 11 minutes ... à faible priorité : on ne s'aperçoit de rien.
Il faut dire que les processeur i5 ont 4 chœurs et ça speed !
13 Août 2013, voici ce que racontent les 10 dernier jours de sauvegardes :
le fichier /media/sauvegarde/system/dirvish/default.hist ( gestion des expirations ) et un résumé de la façon dont s'est déroulée la dernière sauvegarde.
/media/sauvegarde/system/2013-08-12# cat summary
client: Speedi5
tree: /
rsh: ssh
Server: Speedi5
Bank: /media/sauvegarde
vault: system
branch: default
Image: 2013-08-12
Reference: 2013-08-11
Image-now: 2013-08-12 22:00:00
Expire: +15 days == 2013-08-27 22:00:00
exclude:
*~
lost+found/
/var/tmp/
/var/run/
/var/lock/
/mnt/
/media/
/sys
/dev/
/proc/
/tmp/
/vmlinuz*
/initrd*
.gvfs
var/cache/apt/archives
var/cache/man
tmp
var/tmp
SET permissions devices numeric-ids stats xdev
UNSET checksum init sparse whole-file zxfer
ACTION: rsync -vrltH --delete -pgo --stats -D --numeric-ids -x --exclude-from=/media/sauvegarde/system/2013-08-12/exclude --link-dest=/media/sauvegarde/system/2013-08-11/tree / /media/sauvegarde/system/2013-08-12/tree
Backup-begin: 2013-08-12 22:04:08
Backup-complete: 2013-08-12 22:04:16
Status: success
On voit que la sauvegarde incrémentale des 605 Mib de tout ce qui n'est pas /usr /var /home a pris seulement 8 secondes ... parce qu'il n'y avait pas grand chose de nouveau
Maintenant, si on veut trouver un fichier particulier dans ce fatras de fichiers / rep, on utilise la commande dirvish-locate jeu-de-sauvegarde motif-re-perl
Ici par exemple je recherchais les fichiers /etc/apt/sources.list dans mon jeu de sauvegarde "system"
# dirvish-locate system sources.list
1 matches in 25 images
/etc/apt/sources.list
mai 30 05:10 2013-08-12, 2013-08-11, 2013-08-10, 2013-08-09, 2013-08-08
2013-08-07, 2013-08-06, 2013-08-04, 2013-08-03, 2013-08-02
2013-08-01, 2013-07-31, 2013-07-30, 2013-07-29, 2013-07-28
2013-07-21, 2013-07-14, 2013-07-07, 2013-06-30, 2013-06-23
2013-06-16, 2013-06-09, 2013-06-02
avril 8 18:03 2013-05-26, 2013-05-27
Dernière chose : il vaut mieux exclure /media de /etc/updatedb.conf
# cat /etc/updatedb.conf
PRUNE_BIND_MOUNTS="yes"
# PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /media /home/private"
PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf fuse.glusterfs fuse.sshfs curlftpfs"
de façon à diminuer le temps d’exécution d'updatedb et la taille du ficher /var/lib/mlocate/mlocate.db
Je suis vraiment satisfait de mon installation, merci aux développeurs de Dirvish !
J'espère n'avoir rien oublié.
Bien ... Bien ... Quelques erreurs, mais chapeau bandit ! ;-)))
RépondreSupprimer