Rsync : Différence entre versions
(→Economie ne rime pas avec securité) |
(→Plaidoyer pour la sauvegarde rsync) |
||
Ligne 16 : | Ligne 16 : | ||
3- rapidité de la sauvegarde | 3- rapidité de la sauvegarde | ||
− | 4- faible | + | 4- faible trafic en écriture |
Avantages lors de la restauration | Avantages lors de la restauration | ||
Ligne 22 : | Ligne 22 : | ||
1- rapidité pour rechercher un unique fichier en plusieurs versions sur un seul support | 1- rapidité pour rechercher un unique fichier en plusieurs versions sur un seul support | ||
− | 2- rapidité pour restaurer l'integralité de la sauvegarde par simple rsync inversé ou cp sans | + | 2- rapidité pour restaurer l'integralité de la sauvegarde par simple rsync inversé ou cp sans décompression, ni lecture lente de bandes magnétiques |
== Economie ne rime pas avec securité == | == Economie ne rime pas avec securité == |
Version du 1 mai 2007 à 16:31
Sommaire
Principe de la sauvegarde Rsync sur disque dur USB
L'idée est de profiter de rsync et ses options pour :
1- avoir une sauvegarde 1:1 toujours à jours des dossier à sauvegarder
2- avoir des dossiers de sauvegarde secondaire journaliers contenant chacun les fichiers modifiés ou supprimés lors de la sauvegarde journalière
Plaidoyer pour la sauvegarde rsync
Avantages lors de la sauvegarde:
1- n'est copié que ce qui a changé = gain de place
2- support disque dur (ou eventuellement DVD-RW) moins couteux que DAT
3- rapidité de la sauvegarde
4- faible trafic en écriture
Avantages lors de la restauration
1- rapidité pour rechercher un unique fichier en plusieurs versions sur un seul support
2- rapidité pour restaurer l'integralité de la sauvegarde par simple rsync inversé ou cp sans décompression, ni lecture lente de bandes magnétiques
Economie ne rime pas avec securité
Ce n'est pas parce que l'investissement dans des disques dur USB est moins couteux que dans des lecteurs DAT avec des bandes magnétiques qu'il faut economiser sur le nombre de disques pour les sauvegardes. En effet un disque dur dans un boitier USB peut crasher....
Darrell May, de l'équipe de contribs.org, conseille d'avoi au minimum un jeu de 9 disques durs USB.
LUNDI
MARDI
MERCREDI
JEUDI
VENDREDI-WK1
VENDREDI-WK2
VENDREDI-WK3
VENDREDI-WK4
VENDREDI-WK5
Un archive mensuelle peut venir s'ajouter en 10° disque. Les disques devront êtres renouvellés régulièrement et de façon échelonnée, par des disques provenant d'un fabricant et d'un vendeur sur. Ces disques devront donc tourner de façon journalière, et être remis dans un lieu sur à l'abris du vol, du feux, et de tous chocs électriques, mécaniques, thermiques et électromagnétiques.
Dans la pratique, et dans le cadre d'un soho (qui est le cadre idéal pour une SME): un minimum de 2 disques est indispensable avec le script devellopé ci dessous alternés dans leur utilisation.
Ma preference irait même à 3 : un servant de sauvegarde tous les jours, et les deux autres (2 et 3) de sauvegarde du disque 1 un jour sur 2.
Mais en aucun cas un seul disque de sauvegarde! imaginé le court circuit au moment ou le disque sauvegarde est branché : le serveur grillé et les sauvegardes aussi !
RSYNC vers un site secondaire via un tunnel SSH2
à venir
cette méthode pourra être une sécurité de plus dans la sauvegarde, attention toutefois au vol des données si le site secondaire n'est pas sur.
____
en attendant voici un embryon
1- utiliser la methode du site de grand pa pour obtenir une clef privé sur le serveur "serveur rsync SSH" copier la dans le fichier /root/.ssh/identity par exemple sur le serveur "client rsync ssh"
2- utiliser le script suivant
#!/bin/sh # variable de date DATE=$(date +%d) echo "$DATE" >>/tmp/sauvegarde.txt #rsync des dossiers importants du serveur SRC1=("/home/e-smith/files/ibays/Primary" "/home/e-smith/files/ibays/cool" "/home/e-smith/files/users/admin" "/etc/cron.daily/sauvemsql") #destination sur le serveur de sauvegarde DEST="/home/e-smith/files/users/sauvegardes/home/rsync/" # -n simulation OPTIONS=" --force --ignore-errors --delete --delete-excluded -av" #utilisation d'une clef RSA rsync -e "ssh -i ~/.ssh/identity" $OPTIONS ${SRC1[@]} root@IP.IP.IP.IP:$DEST >>/tmp/sauvegarde.txt
RSYNC vers un disque dur USB
Sous SME un disque dur USB est automatiquement monté dans un dossier du type /media/usbdisk1 ... MAis nous n'allons pas utiliser cette fonction.
La première méthode est d'utiliser un script automatique lancé par le cron, et necessitant que le disque soit connecté toute la nuit par exemple afin d'être utilisé pour la sauvegarde, et remplacé dans la journée par le suivnat dans le jeux de disques.
ecrire dans un fichier:
vi /etc/cron.daily/rsyncUsbBackup
#!/bin/sh # ################################### # drive to mount ################################### # ################################### # directory where to mount drive ################################### #disque a monter disque="/dev/sda1" #repertoire de montage repertoire="/sauvegarde" # #script test # echo "on monte le disque" mount -v -t ext3 $disque $repertoire #ext3 #echo "on lit le contenu" #ls $repertoire ######################################################### # Script to do incremental rsync backups # Adapted from script found on the rsync.samba.org # Brian Hone 3/24/2002 # This script is freely distributed under the GPL ######################################################### # ################################## # Configure These Options ################################## # ################################### # mail address for status updates # - This is used to email you a status report ################################### MAILADDR="admin@DOMAIN.COM" # <============================ mettre son nom de domaine pour les mails # ################################### # HOSTNAME # - This is also used for reporting ################################### HOSTNAME="DOMAIN.COM" # <============================ mettre son nom de domaine # ################################### # directory to backup # - This is the path to the directory you want to archive ################################### BACKUPDIR=('/home/e-smith' '/etc/e-smith') # <============================ listes des dossiers à sauvegarder # ################################### # excludes file - contains one wildcard pattern per line of files to exclude # - This is a rsync exclude file. See the rsync man page and/or the # example_exclude_file ################################### EXCLUDES="" # ################################### # root directory to for backup stuff ################################### ARCHIVEROOT=$repertoire"/rsync" # ######################################### # From here on out, you probably don't # # want to change anything unless you # # know what you're doing. # ######################################### # # directory which holds our current datastore CURRENT=main # # directory which we save incremental changes to INCREMENTDIR=`date +%Y-%m-%d` # options to pass to rsync OPTIONS="--force --ignore-errors --delete --delete-excluded \ --exclude-from=$EXCLUDES --backup --backup-dir=$ARCHIVEROOT/$INCREMENTDIR -av" export PATH=$PATH:/bin:/usr/bin:/usr/local/bin # make sure our backup tree exists install -d $ARCHIVEROOT/$CURRENT # our actual rsyncing function do_rsync() { echo "debut rsync" rsync $OPTIONS ${BACKUPDIR[@]} $ARCHIVEROOT/$CURRENT >/tmp/rsyncfiles echo "fin rsync" } # our post rsync accounting function do_accounting() { echo "do_accounting" echo "do_accounting" >>/tmp/rsync_script_tmpfile echo "Backup Accounting for Day $INCREMENTDIR on $HOSTNAME:">/tmp/rsync_script_tmpfile echo >> /tmp/rsync_script_tmpfile echo "################################################">>/tmp/rsync_script_tmpfile echo " du -s $ARCHIVEROOT/* >> /tmp/rsync_script_tmpfile" du -s $ARCHIVEROOT/* >> /tmp/rsync_script_tmpfile echo "################################################">>/tmp/rsync_script_tmpfile echo "état du disque $disque" >>/tmp/rsync_script_tmpfile echo "################################################">>/tmp/rsync_script_tmpfile echo "df /sauvegarde >>/tmp/rsync_script_tmpfile" df /sauvegarde >>/tmp/rsync_script_tmpfile echo "################################################">>/tmp/rsync_script_tmpfile echo "fichiers pris en compte ce jour">>/tmp/rsync_script_tmpfile echo "################################################">>/tmp/rsync_script_tmpfile echo "cat /tmp/rsyncfiles >>/tmp/rsync_script_tmpfile" cat /tmp/rsyncfiles >>/tmp/rsync_script_tmpfile echo "Mail $MAILADDR -s $HOSTNAME Backup Report < /tmp/rsync_script_tmpfile" Mail $MAILADDR -s "$HOSTNAME Backup Report" < /tmp/rsync_script_tmpfile echo "rm /tmp/rsync_script_tmpfile" rm /tmp/rsync_script_tmpfile } # some error handling and/or run our backup and accounting if [ -f $EXCLUDES ]; then if [ -d $BACKUPDIR ]; then # now the actual transfer do_rsync && do_accounting else echo "cant find $BACKUPDIR"; exit fi else echo "cant find $EXCLUDES"; exit fi #demonter le lecteur echo "on demonte le disque" umount -f $disque
Remerciements
http://www.linuxfocus.org/Francais/March2004/article326.shtml#326lfindex3
http://arnofear.free.fr/linux/rsync-1.php
a venir
soit utilisation de udev, grace aux info de : udevinfo -a -p /sys/block/sda
soit appeler le disque en focntion de son uid ou d'un label
tune2fs /dev/sda1 -l
e2label permet de modifier le label du hdd
apres il suffit de faire : (sans les <>)
mount -L <label> /sauvegarde
ou
mount -U <UUID> /sauvegarde
/lib/udev/vol_id -u /dev/sda1 permet de connaitre le uuid de totu disque meme non linux. mtools peut permettre de renomer un disque http://ubuntu.wordpress.com/2006/03/01/editing-fat32-partition-labels-using-mtools/
le UID est a preferer (plus unique et evite un blocage du systeme en cas de branchement de deux disuqes avec le même label)
cette simple commande suffit ensuite à verifier si le disque est connecté, et s'il est deja monté, ou si le UUID est faux:
- mount: UUID erroné
- mount: /dev/sda1 est déjà monté ou /sauvegarde/ est occupé
- mount: selon mtab /dev/sda1 est monté sur /sauvegarde
- mount: pas de telle partition repérée
PID permettant de savori si tourne, + fichier indiquant qu'il a fini depuis moins d'une heure à effacer dés que deconnecté.