IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Script de restauration bdd mysql


Sujet :

Linux

  1. #1
    Membre régulier Avatar de loopback
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 170
    Points : 113
    Points
    113
    Par défaut Script de restauration bdd mysql
    Salut,
    pour tester j'ai créer un petit script de backup et de restor de bdd mysql en bash mais je bloque pour la restauration car le fichier est sauvegardé avec un format de date.
    Je voudrais restaurée la dernière bdd mais je sais pas quoi indiquer dans le ligne de script.

    Voici le script de backup:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #!/bin/sh
    PATH=/bin:/usr/bin:/usr/local/bin
     
    date=$(date +%d-%m-%Y-%H-%M)
    user="operator"
    pw="PASSWORD"
    dump="/usr/bin/mysqldump"
    log="/var/log/backupdb.log"
    dest="/var/db"
     
    ${dump} -A -u${user} -p${pw} > /var/tmp/databases.sql
    cd /var/tmp
    tar -cf databases-${date}.tar databases.sql
    bzip2 databases-${date}.tar
    chmod 600 databases-${date}.tar.bz2
    mv databases-${date}.tar.bz2 ${dest}
    rm -f databases.sql
    echo "BACKUP_DB_${date} : Base de donnée sauvegardée" >> ${log}
    exit 0
    il marche bien et met crée donc un fichier avec une date et l'heure de la sauvegarde:
    /var/db/databases-18-10-2007-15-00.tar.bz2

    Mais voilà, lors de la restauration il y a un problème car il ne trouve plus le fichier puisque la date du système à changée.

    Voici le script de restauration:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #!/bin/sh
    PATH=/bin:/usr/bin:/usr/local/bin
    date=$(date +%d-%m-%Y-%H-%M)
    user="operator"
    pw="PASSWORD"
    sql="/usr/bin/mysql"
    dest="/var/db"
     
    echo
    echo "Restauration de la dernière sauvegarde...en cours..."
    sleep 2
     
    cd ${dest}
    tar -jxf databases-${date}.tar.bz2
    ${sql} -u${user} -p${pw} < databases.sql
    rm -f databases.sql
     
    echo
    echo "Dernière base de donnée restaurée avec succès"
    sleep 2
    exit 0
    Comment faire pour qu'il restaure le dernier backup ?

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 720
    Points : 31 040
    Points
    31 040
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par loopback Voir le message
    Comment faire pour qu'il restaure le dernier backup ?
    Ben t'as plusieurs solutions
    1) puisque seul le dernier backup compte, tu n'es pas obligé de garder les autres donc t'as plus besoin de datation sur le nom de fichier donc tu n'auras qu'un seul fichier backup dont tu connais le nom

    2) il te faut plusieurs fichiers donc cela veut dire que ton script est susceptible d'en restaurer un ou un autre (pas forcément le dernier) donc tu lui passes le nom du fichier à restaurer en paramètre

    3) le dernier fichier de backup étant le plus récent, tu peux demander un "ls -t" pour avoir les plus récents en premier avec un "head -1" pour n'avoir que le premier =>
    nameBackup=`ls -t |head -1`

  3. #3
    Membre régulier Avatar de loopback
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 170
    Points : 113
    Points
    113
    Par défaut
    Merci pour ta réponse.

    Voici ce que j'ai fait pour la restauration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #!/bin/sh
    PATH=/bin:/usr/bin:/usr/local/bin
    user="operator"
    pw="PASSWORD"
    sql="/usr/bin/mysql"
    dest="/var/db"
    dback=`ls -tr /var/db/databases-*.bz2 | tail -n 1`
     
    echo
    echo "Restauration de la dernière sauvegarde...en cours..."
    sleep 2
     
    cd ${dest}
    tar -jxf ${dback}
    ${sql} -u${user} -p${pw} < databases.sql
    rm -f databases.sql
     
    echo
    echo "Dernière base de donnée restaurée avec succès"
    sleep 2
    exit 0
    Encore merci pour ton aide.
    @ bientôt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Script automatisé backup BDD Mysql
    Par Dreamtale dans le forum Linux
    Réponses: 3
    Dernier message: 22/12/2010, 17h54
  2. [MySQL] Script PHP pour Menu déroulant ->BDD MySQL
    Par BENLEMALIN dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 06/12/2006, 16h12
  3. [DUMP BDD] Problème de restauration avec MySQL Administrator
    Par scorpiwolf dans le forum Administration
    Réponses: 1
    Dernier message: 12/07/2006, 12h33
  4. Réponses: 4
    Dernier message: 30/12/2005, 11h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo