[Note] Utilisation de dump et restore

Dump

Pour effectuer la sauvegarde d’une partition /home sur une autre partition sur un autre disque /backup, par exemple, il suffit de faire :

dump -0 -A /backup/tabledump.home -f /backup/dump.home /home

Le résultat est un fichier tabledump.home d’index des fichiers sauvegardés et un fichier dump.home qui est l’archive des fichiers sauvegardés

L’option -0 indique le niveau de sauvegarde. 0 correspond à une sauvegarde complète, alors que les autres niveaux n correspondent à la sauvegarde des fichiers qui ont été modifiés depuis la ‘n’ieme sauvegarde.
L’option -A archive_file indique de créé un index du contenue du dump. Ceci permet en utilisant la commande restore de restaurer un fichier unique sans parcourir entierement l’archive de sauvegarde
L’option -F indique de sauvegarder le backup dans un fichier

Restore

Pour restaurer à l’identique le repertoire /home depuis la sauvegarde précédente.


cd /
restore C -A /backup/tabledump.home -f /backup/dump.home

Et maintenant, comme c’est pour une restauration, on ce place à la racine du filesystem.
l’option C indique de comparer les fichiers présents sur le disque avec ceux presents dans l’archive de backup et de restaurer tout ceux qui on été modifiés.
L’option -A archive_file indique d’utiliser un index du contenue du dump Note

Ceci n’est qu’un exemple qui ne dispense pas de lire attentivement le man. La destination du dump peut être une autre partition, ici /backup. Mais cela peut être un autre disque, une bande, un montage nfs ou même un tunnel ssh vers une autre machine.

Script

Voici un petit script qui utilise dump pour faire des sauvegardes total chaque mois sur un serveur # !/bin/sh


#!/bin/sh

# Répertoire ou ressource racine de destination de la sauvegarde dump
RACINE="/work"
# Date format exemple -> 2006.11.27
DATE=`date +"%Y.%m.%d"`
# Nettoyage du nom du serveur par suppression du tld
SERVERNAME=`echo $HOSTNAME | sed 's/.ifp.fr//' `
# Chemin complet de destination de la sauvegarde
DESTINATION="$RACINE/$DATE/$SERVERNAME"

for line in `grep "LABEL" /etc/fstab | grep -vi "swap" | grep -vi $RACINE | awk '{print $2}'`
do

# conf du nom de fichier du dump de backup
NAMEFILE=`echo $line | sed 's/^\///'`
[[ -z "$NAMEFILE" ]] && NAMEFILE=root

case "$1" in
startdump )
# Creation du repertoire de destination en fontion de la date.
[[ ! -d ${DESTINATION} ]] && /bin/mkdir -p ${DESTINATION}
[[ ! -d ${DESTINATION} ]] && chmod o+rwx ${DESTINATION}
# Execution du dump
RC=`dump -0 -A $DESTINATION/$NAMEFILE.dump -f $DESTINATION/$NAMEFILE.tabledump $line`
;;
testdump ) echo "dump -0 -A $DESTINATION/$NAMEFILE.dump -f $DESTINATION/$NAMEFILE.tabledump $line"
;;
* ) SYNTAXERROR=1
;;
esac
done

# Message d'erreur et syntaxe
[[ $SYNTAXERROR -eq 1 ]] && echo -e "syntax: dump4netbakup.sh [option]
startdump : Execute un dump de chaque filesystem de /etc/fstab
testdump : Affiche la commande lancer pas l'option 'startdump'
";

Le resultat de l’execution du script


[root@serveur245 root]# ./dump4netbackup.sh testdump
dump -0 -A /work/2006.11.27/serveur245/root.dump -f /work/2006.11.27/serveur245/root.tabledump /
dump -0 -A /work/2006.11.27/serveur245/boot.dump -f /work/2006.11.27/serveur245/boot.tabledump /boot
[root@serveur245 root]# ./dump4netbackup.sh startdump
DUMP: Date of this level 0 dump: Mon Nov 27 12:25:39 2006
DUMP: Dumping /dev/sda2 (/) to /work/2006.11.27/serveur245/root.tabledump
DUMP: Added inode 8 to exclude list (journal inode)
DUMP: Added inode 7 to exclude list (resize inode)
DUMP: Label: /
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 18216674 tape blocks.
DUMP: Volume 1 started with block 1 at: Mon Nov 27 12:25:58 2006
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
DUMP: 7.73% done at 4691 kB/s, finished in 0:59
DUMP: 26.49% done at 8041 kB/s, finished in 0:27
DUMP: 50.99% done at 10321 kB/s, finished in 0:14
DUMP: 74.77% done at 11350 kB/s, finished in 0:06

DUMP: 99.64% done at 12100 kB/s, finished in 0:00
DUMP: 100.00% done at 10993 kB/s, finished in 0:00
DUMP: 100.00% done at 9968 kB/s, finished in 0:00
DUMP: Closing /work/2006.11.27/serveur245/root.tabledump
DUMP: Volume 1 completed at: Mon Nov 27 13:01:12 2006
DUMP: Volume 1 20981670 tape blocks (20489.91MB)
DUMP: Volume 1 took 0:35:14
DUMP: Volume 1 transfer rate: 9925 kB/s
DUMP: 20981670 tape blocks (20489.91MB) on 1 volume(s)
DUMP: finished in 2114 seconds, throughput 9925 kBytes/sec
DUMP: Date of this level 0 dump: Mon Nov 27 12:25:39 2006
DUMP: Date this dump completed: Mon Nov 27 13:01:12 2006
DUMP: Average transfer rate: 9925 kB/s
DUMP: Archiving dump to /work/2006.11.27/serveur245/root.dump
DUMP: DUMP IS DONE
DUMP: Date of this level 0 dump: Mon Nov 27 13:01:12 2006
DUMP: Dumping /dev/sda1 (/boot) to /work/2006.11.27/serveur245/boot.tabledump
DUMP: Added inode 8 to exclude list (journal inode)
DUMP: Added inode 7 to exclude list (resize inode)
DUMP: Label: /boot
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 10893 tape blocks.
DUMP: Volume 1 started with block 1 at: Mon Nov 27 13:01:13 2006
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
DUMP: Closing /work/2006.11.27/serveur245/boot.tabledump
DUMP: Volume 1 completed at: Mon Nov 27 13:01:13 2006
DUMP: Volume 1 10880 tape blocks (10.62MB)
DUMP: 10880 tape blocks (10.62MB) on 1 volume(s)
DUMP: finished in less than a second
DUMP: Date of this level 0 dump: Mon Nov 27 13:01:12 2006
DUMP: Date this dump completed: Mon Nov 27 13:01:13 2006
DUMP: Average transfer rate: 0 kB/s
DUMP: Archiving dump to /work/2006.11.27/serveur245/boot.dump
DUMP: DUMP IS DONE
[root@serveur245 root]#

Sources d’information

http://www.xerxes3rd.net/staticpages/index.php ?page=LinuxFilesystemBackup&mode=print http://surf.ap.seikei.ac.jp/ nakano/dump-restore/dump-restore-mini-HOWTO.en.html http://new.linuxfocus.org/Francais/March2005/article370.shtml http://www.linuxcommand.org/man_pages/dump8.html http://dump.sourceforge.net/ http://cern91.tuxfamily.org/linux/indexconf.php ?page=plus http://www.docmirror.net/fr/linux/howto/os/Post-Installation-Checklist/ar01s03.html http://www.stud.uni-hannover.de/user/76201/gpart/ http://www.tldp.org/HOWTO/Partition/recovering.html