Navigation

    La Cabane Libre

    • Register
    • Login
    • Search
    • Catégories
    • Recent
    • Mots-clés
    • Ciné Libre

    [Script] Sauvegarde de bases MySQL

    La Bibliothèque
    script linux
    1
    1
    623
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • The Worm's
      The Worm's Manchot Adélie last edited by Léopard des Mers

      Ce script sauvegarde les bases de données MySQL en générant dans le répertoire « BACKUPDIR » un fichier par base de donnée.

      Les fichiers générés seront au format « BACKUPDIR/DATE.NOMDATABASE.sql ».

      #!/bin/bash
       
      # Script de sauvegarde des bases MySQL.
      #
      # Sauvegarde les bases de données MySQL sous 
      # sous forme d'un fichier par base.
      # 
       
      # Définition des variables de connexion :
      MYSQLUSER="root" ;
      MYSQLPASS="Mot de passe" ;
      MYSQLHOST="localhost" ;
      MYSQLPORT="3306" ;
       
      # Options MySQL Dump :
      MYSQLDUMPOPTS="--add-drop-database --add-drop-table --create-options"
       
      # Définition du répertoire de sauvegarde :
      BACKUPDIR="/tmp/mysql" ;
       
      # Définition des binaires :
      MYSQL="/usr/bin/mysql" ;
      MYSQLDUMP="/usr/bin/mysqldump" ;
      MYSQLADMIN="/usr/bin/mysqladmin" ;
      MKDIR="/bin/mkdir" ;
       
      DATE="/bin/date" ;
       
      # Format de la date sans espaces (voir man date) :
      # Exemple "%Y%m%d"
      DATEFORMAT="%s" ;
       
      ## FONCTIONS
       
      # Fonction de sortie de script :
      die() {
              echo $@ >&2 ;
              exit 1 ;
      }
       
      # Fonction de test des binaires :
      check_binaries() {
              [ -x ${MYSQL} ] || die "File \"${MYSQL}\" not found ! Check definition in ${0}." ;
              [ -x ${MYSQLDUMP} ] || die "File \"${MYSQLDUMP}\" not found ! Check definition in ${0}." ;
              [ -x ${MYSQLADMIN} ] || die "File \"${MYSQLADMIN}\" not found ! Check definition in ${0}." ;
              [ -x ${DATE} ] || die "File \"${DATE}\" not found ! Check definition in ${0}." ;
              [ -x ${MKDIR} ] || die "File \"${MKDIR}\" not found ! Check definition in ${0}." ;
      }
       
      # Fonctions de sauvegarde :
      backup() {
              ${MYSQLADMIN} -s --host=${MYSQLHOST} --port=${MYSQLPORT} -u ${MYSQLUSER} --password=${MYSQLPASS} ping 2>&1 > /dev/null ;
              [ $? -eq 0 ] || die "Impossible to connect ${MYSQLHOST}:${MYSQLPORT}." ;
      #       Si le répertoire des sauvegardes n'existe pas il est créé :
              [ ! -d ${BACKUPDIR} ] && ${MKDIR} -p ${BACKUPDIR} ;
      #       Pour chaque base,
              for db in `${MYSQL} --host=${MYSQLHOST} --port=${MYSQLPORT} -u ${MYSQLUSER} --password=${MYSQLPASS} -sBe 'show databases'` ; do
      #               Création d'un fichier de dump au format BACKUPDIR/DATE_FORMAT_DATEFORMAT.NOM_BASE.sql
                      ${MYSQLDUMP} ${MYSQLDUMPOPTS} --host=${MYSQLHOST} --port=${MYSQLPORT} -u ${MYSQLUSER} \
                              --password=${MYSQLPASS} ${db} --result-file="${BACKUPDIR}/$(${DATE} +${DATEFORMAT}).${db}.sql" ;
              done
      }
       
      # Main corp du script :
      check_binaries ;
      backup ;
      
      1 Reply Last reply Reply Quote 0
      • First post
        Last post

      Sauf mention contraire, le site est placé sous double licence Creative Commons BY-SA et GNU Free Documentation License propulsé par NodeBB