Outils personnels

Dumpmysql.sh : Différence entre versions

De wikiGite

Ligne 19 : Ligne 19 :
 
  done
 
  done
 
Puis créer un fichier de config dumpmysql.conf
 
Puis créer un fichier de config dumpmysql.conf
# FSo 2010
+
# FSo 2010
# dumpmysql.sh config file
+
# dumpmysql.sh config file
# v1.1
+
# v1.1
 
+
HOST=<nom du host>
+
HOST=<nom du host>
PASSWORD=<mot de passe mysql>
+
PASSWORD=<mot de passe mysql>
SCRIPT_DIR=/opt/systools
+
SCRIPT_DIR=/opt/systools
BACKUP_DIR=/home/backup
+
BACKUP_DIR=/home/backup
LOG=$SCRIPT_DIR/dumpmysql.log
+
LOG=$SCRIPT_DIR/dumpmysql.log
JOUR=$(date +%w)
+
JOUR=$(date +%w)
# One or some bases separated by a space
+
# One or some bases separated by a space
#BASE=<une base>
+
#BASE=<une base>
#BASE="plusieurs
+
#BASE="plusieurs
#bases
+
#bases
#une
+
#une
#par
+
#par
#ligne"
+
#ligne"
# OR all databases except mysql
+
# OR all databases except mysql
BASE=$(mysql --execute "show databases\G" --password=$PASSWORD | grep -v row | sed -e 's/Database: //g' | grep -v mysql | grep -v information_schema)
+
BASE=$(mysql --execute "show databases\G" --password=$PASSWORD | grep -v row | sed -e 's/Database: //g' | grep -v mysql | grep -v information_schema)
# Some options required
+
# Some options required
#DUMP_OPTS="--routines"
+
#DUMP_OPTS="--routines"
DUMP_OPTS=""
+
DUMP_OPTS=""
 
Modifier le host, le mot de passe, et commenter/décommenter selon qu'on veut une sauvegarde de une ou quelques bases, ou toutes les bases, et si on veut ajouter des options à mysqldump (notamment, "--routines" est nécessaire en v5 pour sauvegarder aussi les procédures et fonctions, mais n'est pas reconnue en v4).
 
Modifier le host, le mot de passe, et commenter/décommenter selon qu'on veut une sauvegarde de une ou quelques bases, ou toutes les bases, et si on veut ajouter des options à mysqldump (notamment, "--routines" est nécessaire en v5 pour sauvegarder aussi les procédures et fonctions, mais n'est pas reconnue en v4).
  

Version du 6 août 2010 à 17:10

Voir Mise_à_jour_automatique_des_scripts pour la création automatique du script /opt/systools/dumpmysql.sh :

#!/bin/bash
# FSo 2010
# V1.2
# The script and its config file must be placed in /opt/systools directory
# or change line bellow
. /opt/systools/dumpmysql.conf

if [ ! -d $BACKUP_DIR ]
then
    mkdir -p $BACKUP_DIR
fi
cd $BACKUP_DIR
for DB in $BASE
do
    mysqldump $DB $DUMP_OPTS --password=$PASSWORD > ${HOST}_${DB}_${JOUR}.sql
    rm -f ${HOST}_${DB}_${JOUR}.sql.gz
    gzip ${HOST}_${DB}_${JOUR}.sql
done

Puis créer un fichier de config dumpmysql.conf

# FSo 2010
# dumpmysql.sh config file
# v1.1

HOST=<nom du host>
PASSWORD=<mot de passe mysql>
SCRIPT_DIR=/opt/systools
BACKUP_DIR=/home/backup
LOG=$SCRIPT_DIR/dumpmysql.log
JOUR=$(date +%w)
# One or some bases separated by a space
#BASE=<une base>
#BASE="plusieurs
#bases
#une
#par
#ligne"
# OR all databases except mysql
BASE=$(mysql --execute "show databases\G" --password=$PASSWORD | grep -v row | sed -e 's/Database: //g' | grep -v mysql | grep -v information_schema)
# Some options required
#DUMP_OPTS="--routines"
DUMP_OPTS=""

Modifier le host, le mot de passe, et commenter/décommenter selon qu'on veut une sauvegarde de une ou quelques bases, ou toutes les bases, et si on veut ajouter des options à mysqldump (notamment, "--routines" est nécessaire en v5 pour sauvegarder aussi les procédures et fonctions, mais n'est pas reconnue en v4).

Ne pas oublier un minimum de protection

chmod 600 dumpmysql.conf

Si ça n'a pas déjà été fait, planifier la sauvegarde par un lien dans /etc/cron.daily

ln -s /opt/systools/dumpmysql.sh /etc/cron.daily/dumpmysql

et la lancer une première fois manuellement

/etc/cron.daily/dumpmysql
ls -l /home/backup