[Backup] mon script, qu'en pensez-vous ?

cancel
Showing results for 
Search instead for 
Did you mean: 
legaulois
Active Member

[Backup] mon script, qu'en pensez-vous ?

Voilà je viens vous proposer mon script de backup à froid et voir ainsi ce que vous en pensez.

L'idée est la suivante :

==> Arrêt de tomcat
=> dump de mysql
=> rsync de alf_data
=> création d'un tar.gz avec le dump + rsync
==> redémarrage de tomcat

Et le script =>

#!/bin/bash
#—————————————————————#
# Script de backup à froid d'Alfresco                           #
#—————————————————————#
#
#

#
# Configuration des parametres
#
ALF_DATA_BASE=/var/lib/alfresco
ALF_DATA_DIRNAME=alf_data

BACKUP_DIR=/backups
TEMPORAIRE=/backups/tmp
MACHINE="$(hostname)"
DATE=DATE="$(date +"%d-%m-%Y")"
FICHIER_BACKUP=$MACHINE"_BACKUP_ALFRESCO_"$DATE".tar.gz"


DB_USERNAME=alfresco
DB_PWD=alfresco
DB_NAME=alfresco
OPTIONS=" –complete-insert –routines –triggers –allow-keywords –max_allowed_packet=50M –force"

INCREMENTDIR=`date +%Y-%m-%d_%Hh%M`

LOGFILE=/var/log/backup/backup-$DB_NAME-$INCREMENTDIR.log


#
# Fonctions
#
do_logging()
{
   echo "***" >> $LOGFILE
        echo "Sauvegarde du $INCREMENTDIR " >> $LOGFILE
   echo " " >> $LOGFILE
        echo "################################################" >> $LOGFILE
        du -chs $BACKUP_DIR/* >> $LOGFILE
        echo "################################################" >> $LOGFILE
        FIN=`date +%Y-%m-%d_%Hh%M`
   echo " " >> $LOGFILE
        echo "Sauvegarde fini le $FIN" >> $LOGFILE
   echo " " >> $LOGFILE
        df -h $ARCHIVEDEV >> $LOGFILE
        echo >> $LOGFILE
   echo " " >> $LOGFILE
        echo "***" >> $LOGFILE
}


rm -f /backups/tmp/alfresco*

/etc/init.d/tomcat5 stop
   echo "Arrêt de Tomcat Serveur à " `date +%H:%M` >> $LOGFILE
   echo " " >> $LOGFILE
   echo "Début du dump de la base "$DB_NAME" à " `date +%H:%M` >> $LOGFILE
   echo " " >> $LOGFILE
      for db in $DB_NAME
      do
      mysqlcheck -u $DB_USERNAME -p$DB_PWD -c -a $db
      mysqldump -u $DB_USERNAME -p$DB_PWD $OPTIONS $db -R > $TEMPORAIRE"/"$DB_NAME"-"$INCREMENTDIR".sql";
      done
   echo "Fin du dump de la base "$DB_NAME" à " `date +%H:%M` >> $LOGFILE
   echo " " >> $LOGFILE

rsync -a /var/lib/alfresco /backups/tmp/

   #Creation de l archive contenant les dumps

if [ -d $BACKUP_DIR ]; then
cd $TEMPORAIRE
tar -cvzf $BACKUP_DIR"/"$FICHIER_BACKUP *
fi


/etc/init.d/tomcat5 start
   echo "Démarrage de Tomcat Serveur à " `date +%H:%M` >> $LOGFILE

do_logging

6 Replies
legaulois
Active Member

Re: [Backup] mon script, qu'en pensez-vous ?

Ben alors il pue mon script ? ou personne le comprend xD  :mrgreen:
rguinot
Customer

Re: [Backup] mon script, qu'en pensez-vous ?

Pas le meilleur moyen d'obtenir une réponse …

Quelques remarques après une lecture rapide :
- vous ne gérez pas le cas ou tomcat ne s'arrete pas correctement pour une raison ou une autre, le script procédera au backup dans tous les cas, ce n'est pas une bonne pratique.
- vous pouvez compresser à la volée votre dump sql avec un pipe, exemple : mysqldump …. | bzip2 -c > mondump.sql afin de gagner de la place disque
- vous pouvez compresser à la volée les données transférées par rsync via l'option -z en plus de -a
- /backups est il un montage d'une machine séparée ou au moins une partition séparée de /var/lib ? si ce n'est pas le cas en cas de crash disque vos backups ne servent à rien
- les options mysqldump ne sont pas forcément les meilleures, les articles à ce sujet ne manquent pas.

quoi qu'il en soit, vous êtes le plus à même de juger de votre procédure de backup :

- fonctionne-t-elle ? pemet-t-elle de restaurer un environnement complet a partir de backups ?
- vous permet elle de remonter un serveur dans un délai raisonnable correspondant à vos contraintes ?
- le backup se déroule-t-il dans une fenetre de temps qui vous convient ?
- les backups sont ils stockés dans une salle protégée contre les attaques éléctromagnétiques de terroristes iraniens ? (demandez à Chloé, dans la saison 8 de 24 ça lui a bien servi! )
- ….
legaulois
Active Member

Re: [Backup] mon script, qu'en pensez-vous ?

Merci bien pour votre réponse humoristique Smiley Wink

Je vais donc réévaluez ma procédure en tenant compte de vos remarques.

Merci Smiley Happy

Que préconisez vous comme méthode pour gérer ceci :

vous ne gérez pas le cas ou tomcat ne s'arrete pas correctement pour une raison ou une autre, le script procédera au backup dans tous les cas, ce n'est pas une bonne pratique. 
dranakan
Active Member

Re: [Backup] mon script, qu'en pensez-vous ?

Hello,

Pour info, voici les arguments que j'utilise pour le dump. N'hésitez pas à critiquer pour améliorer.

mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE_ALF –opt –single-transaction –create-options > $BACKUP_FILE_MYSQL_SLQ 2>> $LOGFILE  
if [ $? -gt 0 ] ; then 
        echo "ERROR : Unable to do the mysqldump" >> $LOGFILE 
        exit 1 
fi
legaulois
Active Member

Re: [Backup] mon script, qu'en pensez-vous ?

Up
dranakan
Active Member

Re: [Backup] mon script, qu'en pensez-vous ?

Hello,

Vous avez fait des modifications du code de backup ? Vous utilisez toujours le backup à froid ?
Je suis entrain de modifier mon script pour utiliser rsync (http://forums.alfresco.com/fr/viewtopic.php?f=8&t=4722&start=0) et je constate qu'il est conseillé d'utiliser l'argument checksum (http://forums.alfresco.com/en/viewtopic.php?t=14622#p48160).

Merci bien