SERVEUR DE SAUVEGARDE POUR BCDI3 par G.Haberer, A.Peuch, P.Saadé Table des matières 1. Introduction........................................................................ 2 1.1. Objectif.................................................................... 2 1.2. Composition du poste...................................................... 2 2. Installation Matérielle.............................................................. 2 2.1. Rajouter un disque dur.................................................... 2 2.2. Création des partitions...................................................... 2 2.3. Formatage.................................................................. 2 2.4. Montage automatique...................................................... 2 3. Sauvegarde automatique............................................................ 3 3.1. Préparation................................................................ 3 3.2. Scripts...................................................................... 3 3.3. Automatisation............................................................ 4
1. Introduction 1.1. Objectif. En parallele de la machine sur laquelle fonctionne BCDI3, il est nécesaire de prévoir une machine supplémentaire dédiée à des sauvegardes journalières (DAILY) et dominicales (WEEKLY). Le nom de ce poste sera srvbkup. 1.2. Composition du poste. Pour installer le serveur de bkup de BCDI3, on partira un poste de base Debian auquel il faut rajouter un disque pour les bkup, de taille suffisante : (calculé selon le nombre de jours, de semaines sauvegardés multiplié par la taille de la base de données de BCDI3, surestimée pour avoir une marge) Disque systeme : maitre, première nappe (/dev/hda) Disque bkup : esclave, première nappe (/dev/hdb) Lecteur CD : maitre, deuxième nappe (/dev/hdc) 2. Installation Matérielle 2.1. Rajouter un disque dur. On installe le disque dur en esclave sur la première nappe (/dev/hdb) 2.2. Création des partitions. On lance la commande suivante : cfdisk /dev/hdb Si le disque est neuf, le message suivant s affiche : No partition table or unknown signature on partition table. Do you wish to start with a zero table [y/n]? répondre y. Si le disque a déjà servit vous pouvez alors effacer des partitions (attention, irreversible). Ensuite la méthode est la suivante: 1. allez à new avec les touches gauche/droite appuyez sur entrée 2. choisir primary 3. la taille de la partition est demandée : appuyez sur entrée (il est possible de faire les stokages dans des partitions différentes, il est donc possible de créer deux partitions pour les deux sauvegardes) 4. selectionnez write et à la question : Are you sure you want write the partition table to disk? (yes or no): répondez yes. 5. selectionnez quit pour sortir de cfdisk. 2.3. Formatage. On va formater au format ext3 la première partition du deuxième disque (/dev/hdb), ce qui donne la commande : mke2fs -j /dev/hdb1 2.4. Montage automatique. La partition qui vient d être formatée doit être montée au démarrage, pour cela, on suit la procédure suivante : 1. Création du point de montage mkdir /bkup 2003-2004 http://rzomt.free.fr 2/5
2. Montage au démarrage On modifie le fichier /etc/fstab : jed /etc/fstab et on lui rajoute la ligne suivante à la fin : /dev/hdb1 /bkup ext3 defaults 0 0 On peut tester le montage en faisant : mount /bkup puis mount pour voir les montages en cours. ( umount /bkup pour démonter) 3. Sauvegarde automatique 3.1. Préparation. la sauvegarde se fera par le script qui suit, mais il faut d abord créer les dossiers dont il se servira : (Attention, le disque doit être monté avant la création des dossiers) mkdir -p /bkup/bkup_daily/bkup_bcdi mkdir -p /bkup/bkup_weekly/bkup_bcdi mkdir /mnt/bcdi_daily mkdir /mnt/bcdi_weekly mkdir /var/log/log_bkup 3.2. Scripts. Les deux scripts ont très peu de différences, il n y aura donc que le script DAILY. Il suffit de remplacer toutes le références daily par weekly, en conservant majuscules et minuscules, pour optenir le script WEEKLY. Les deux scripts sont à écrire dans le dossier : /root/donnees_bkup/ et les scripts autont pour noms : script_pour_bkup_daily_srvcdi_to_srvbkup.sh script_pour_bkup_weekly_srvcdi_to_srvbkup.sh Script Daily :!/bin/bash POUR SRVBKUP Ce script a pour fonction de creer la sauvegarde de la base de données de BCDI du jour et de controler le nombre total de sauvegardes journalieres. Version du 19.06.03 NDJDSMAX=20 REP_BKUP_DAILY_BCDI="/bkup/bkup_daily/bkup_bcdi/" REP_MONTAGE_SMB="/mnt/bcdi_daily" SRV_BCDI_DATA="//172.16.30.221/DATA" LISTE_REP_SAUVJ_BCDI="/tmp/liste_rep_bkupj_bcdi.tmp" FICHIER_LOG="/var/log/log_bkup/bkup_bcdi_srvbkup.log" 2003-2004 http://rzomt.free.fr 3/5
on monte la partition samba smbmount $SRV_BCDI_DATA $REP_MONTAGE_SMB -o username=replidata,password=******,ro On tamponne en entree HWTIME=$( /sbin/hwclock --show ) echo "DEBUT du bkup_daily_bcdi le " >> $FICHIER_LOG echo $HWTIME >> $FICHIER_LOG On crée le nom de la nouvelle sauvegarde et on recupère le nom de la derniere sauvegarde NNS=$( date +%Y_%j_%A_%d_%B_%H_%M_%S ) NDS=$( ls $REP_BKUP_DAILY_BCDI tail -n 1 ) On copie la derniere en créant la nouvelle(preparation) cp -al $REP_BKUP_DAILY_BCDI$NDS $REP_BKUP_DAILY_BCDI$NNS On synchronise les données avec srvsmb1 rsync -rlpgod --size-only --delete $REP_MONTAGE_SMB"/" $REP_BKUP_DAILY_BCDI$NNS"/" 2>> $FICHIER_LOG on démonte la partition samba smbumount $REP_MONTAGE_SMB On liste toutes les sauvegardes journalieres ls $REP_BKUP_DAILY_BCDI sort -r > $LISTE_REP_SAUVJ_BCDI On supprime celles qui sont en trop! NB=1 while read ligne_lrsj do if { [ $NB -gt $NDJDSMAX ]; } then { rm -r $REP_BKUP_DAILY_BCDI$ligne_lrsj }; fi NB=$(( $NB+1 )) done < $LISTE_REP_SAUVJ_BCDI On tamponne en sortie... HWTIME=$( /sbin/hwclock --show ) echo "FIN du bkup_daily_bcdi le " >> $FICHIER_LOG echo $HWTIME >> $FICHIER_LOG FIN 3.3. Automatisation. Pour lancer les scripts automatiquement et de façon régulière nous utiliseront cron. 2003-2004 http://rzomt.free.fr 4/5
les fichiers cron devront être enregistrés dans le dossier /etc/cron.d. cron pour bkup daily : Fichier cron pour démarrage et arret de la sauvegarde incrementielle JOURNALIERE de //srvcdi/data sur srvbkup 00 23 * * * root /root/donnees_bkup/script_pour_bkup_daily_srvcdi_to_srvbkup.sh cron pour bkup weekly : Fichier cron pour démarrage et arret de la sauvegarde incrementielle DOMINICALE de //srvcdi/data sur srvbkup 00 01 * * 7 root /root/donnees_bkup/script_pour_bkup_weekly_srvcdi_to_srvbkup.sh G.Haberer, A.Peuch, P.Saadé 2003-2004 http://rzomt.free.fr 5/5