CENTREON – Script de sauvegarde BDD Full + INC

#!/bin/bash
#
# Hubert CORNET
#
####################################################################################################

clear

echo ""
echo " = = = = Sauvegarde = = = = "
echo ""

dtstring=$(date +"%A-%d")
dtbackup=$(date +"%D")
DATE_DAY=$(date +"%Y-%m-%d")
DATE_HOUR=$(date +"%H-%M")

BACKUPFULL_DIR=/var/lib/mysql/BACKUP
BACKUPINC_DIR=/var/lib/mysql/BACKUP/INC
BACKUPINCDAY_DIR=/var/lib/mysql/BACKUP/INC/${dtstring}-06
DATADIR=/var/lib/mysql/BACKUP
BACKUP_PASS=PasswOrd
BACKUP_USER=mysqlbackup

USER_ARGS=" --user=${BACKUP_USER} --password=${BACKUP_PASS}"

ARGS="--rsync $USER_ARGS --no-timestamp --parallel=10 --compress --compress-threads=4"

DEST_BDD_FULL=/var/lib/mysql/BACKUP/BDD_FULL_centreon.zip
DEST_BDD_INC=/var/lib/mysql/BACKUP/BDD_INC_06_centreon.tgz

BACKUP_LOG=/var/lib/mysql/BACKUP/LOGS
BACKUP_LOG_FOLDER=/var/lib/mysql/BACKUP/LOGS/BACKUP
BACKUP_LOG_FILE=/var/lib/mysql/BACKUP/LOGS/BACKUP/backup-${DATE_DAY}.${DATE_HOUR}.log

# Creation du repertoire de log
if [ -d ${BACKUP_LOG} ]; then
if [ -d ${BACKUP_LOG_FOLDER} ]; then
echo "-- Dossier de Logs deja existant "
echo "-- Dossier de Logs deja existant" >>${BACKUP_LOG_FILE}
fi
else
echo "-- Creation des dossiers de Logs"

mkdir ${BACKUP_LOG}
mkdir ${BACKUP_LOG_FOLDER}
fi

ESPACE_DISQUE=$(df -m /var/lib/mysql | awk '/\/var/ {split($4,mysql,"%");if (hdc1[1] < 80) {print $4}}')

if [ ${ESPACE_DISQUE} -lt 10% ]; then
echo "$(tput bold) $(tput setaf 1) |------------------------------- KO $(tput sgr0)"
echo "$(tput bold) $(tput setaf 1) |------------------------------- Pas de place disque pour faire la sauvegarde $(tput sgr0)"

echo " |------------------------------- KO" >>${BACKUP_LOG_FILE}
echo " |------------------------------- Pas de place disque pour faire la sauvegarde" >>${BACKUP_LOG_FILE}

(echo -e "ERREUR : La sauvegarde du serveur de supervision est terminee avec une ou des erreurs \n\n"; cat "${BACKUP_LOG_FILE}") | mail -r Supervision -s "SUPERVISION : ERREUR sauvegarde avorte" admin@tips-of-mine.fr

exit 1;
fi

echo "-- Demarrage sauvegarde ${DATE_DAY} ${DATE_HOUR} "
echo "-- Demarrage sauvegarde ${DATE_DAY} ${DATE_HOUR}" >>${BACKUP_LOG_FILE}

# Creation des repertoires de travail
echo "-- Creation du repertoire de travail"
echo "-- Creation du repertoire de travail" >>${BACKUP_LOG_FILE}

# Creation du repertoire INCREMENTAL
if [ -d ${BACKUPINC_DIR} ]; then
echo "-- Repertoire INCREMENTAL deja existant"
echo "-- Repertoire INCREMENTAL deja existant" >>${BACKUP_LOG_FILE}
else
echo "-- Creation du repertoire INCREMENTAL"
echo "-- Creation du repertoire INCREMENTAL" >>${BACKUP_LOG_FILE}

mkdir ${BACKUPINC_DIR} &>>${BACKUP_LOG_FILE}
fi

# Lancement sauvegarde
echo "-- Sauvegarde Base de donnees"
echo "-- Sauvegarde Base de donnees" >>${BACKUP_LOG_FILE}

echo " |-- Sauvegarde Base de donnees $(tput setaf 3)INCREMENTAL $(tput sgr0)"
echo " |-- Sauvegarde Base de donnees INCREMENTAL" >>${BACKUP_LOG_FILE}

# Base de donnees incremental
if [ -d ${BACKUPINCDAY_DIR} ]; then
echo "$(tput bold) $(tput setaf 1) |------------------------------- KO $(tput sgr0)"
echo "$(tput bold) $(tput setaf 1) |------------------------------- Dossier de sauvegarde deja present $(tput sgr0)"

echo " |------------------------------- KO" >>${BACKUP_LOG_FILE}
echo " |------------------------------- Dossier de sauvegarde deja present" >>${BACKUP_LOG_FILE}

else
echo " |-- Sauvegarde incremental du jour $(tput setaf 3)${dtstring} $(tput sgr0)"
echo " |-- Sauvegarde incremental du jour ${dtstring}" >>${BACKUP_LOG_FILE}

if [ ! -f ${BACKUPFULL_DIR}/dernier_inc_date ]; then
NUMBER=1
else
LAST_BACKUPINC=$(cat ${BACKUPFULL_DIR}/dernier_inc_date | tail)
fi

innobackupex ${ARGS} --incremental ${BACKUPINCDAY_DIR} --incremental-basedir=${BACKUPFULL_DIR}/INC/${LAST_BACKUPINC} &>>${BACKUP_LOG_FILE}

echo ${dtstring}-06 > ${BACKUPFULL_DIR}/dernier_inc_date

echo "$(tput bold) $(tput setaf 2) |------------------------------- OK $(tput sgr0) "
echo " |------------------------------- OK " >>${BACKUP_LOG_FILE}

for bf in `find ${BACKUPINCDAY_DIR} -iname "*\.qp"`; do qpress -d $bf $(dirname $bf) ;echo "processing" $bf; rm $bf; done &>>${BACKUP_LOG_FILE}

fi

# Base de donnees FULL
echo " |-- Sauvegarde Base de donnees $(tput setaf 3)FULL $(tput sgr0)"
echo " |-- Sauvegarde Base de donnees FULL" >>${BACKUP_LOG_FILE}

echo " |-- Preparation de la Base de donnees $(tput setaf 3)FULL $(tput sgr0)"
echo " |-- Preparation de la Base de donnees FULL" >>${BACKUP_LOG_FILE}

innobackupex ${ARGS} ${BACKUPFULL_DIR}/${DATE_DAY}-${DATE_HOUR} &>>${BACKUP_LOG_FILE}

echo "$(tput bold) $(tput setaf 2) |------------------------------- OK $(tput sgr0) "
echo " |------------------------------- OK" >>${BACKUP_LOG_FILE}

echo " |-- truc de la Base de donnees $(tput setaf 3)FULL $(tput sgr0)"
echo " |-- truc de la Base de donnees FULL" >>${BACKUP_LOG_FILE}

for bf in `find ${BACKUPFULL_DIR}/${DATE_DAY}-${DATE_HOUR} -iname "*\.qp"`; do qpress -d $bf $(dirname $bf) ;echo "processing" $bf; rm $bf; done &>>${BACKUP_LOG_FILE}

echo "$(tput bold) $(tput setaf 2) |------------------------------- OK $(tput sgr0) "
echo " |------------------------------- OK" >>${BACKUP_LOG_FILE}

echo " |-- Controle de la Base de donnees $(tput setaf 3)FULL $(tput sgr0)"
echo " |-- Controle de la Base de donnees FULL" >>${BACKUP_LOG_FILE}

innobackupex --apply-log --redo-only ${BACKUPFULL_DIR}/${DATE_DAY}-${DATE_HOUR} &>>${BACKUP_LOG_FILE}

echo "$(tput bold) $(tput setaf 2) |------------------------------- OK $(tput sgr0) "
echo " |------------------------------- OK " >>${BACKUP_LOG_FILE}

echo ${DATE_DAY}-${DATE_HOUR} > ${BACKUPFULL_DIR}/dernier_full_date

# Compression
echo "-- Compression de la sauvegarde "
echo "-- Compression de la sauvegarde" >>${BACKUP_LOG_FILE}

echo " |-- Compression des bases de donnes $(tput setaf 3)FULL $(tput sgr0)"
echo " |-- Compression des bases de donnes FULL" >>${BACKUP_LOG_FILE}

temp=$BACKUPFULL_DIR/${DATE_DAY}-${DATE_HOUR}*/

zip -r ${DEST_BDD_FULL} ${temp} &>>${BACKUP_LOG_FILE}

if [ -e ${DEST_BDD_FULL} ]; then
echo "$(tput bold) $(tput setaf 2) |------------------------------- OK $(tput sgr0) "
echo " |------------------------------- OK" >>${BACKUP_LOG_FILE}

echo " |-- Renommage du fichier"
echo " |-- Renommage du fichier" >>${BACKUP_LOG_FILE}

mv ${DEST_BDD_FULL} /var/lib/mysql/BACKUP/BDD_FULL_centreon-${DATE_DAY}.zip &>>${BACKUP_LOG_FILE}

echo "$(tput bold) $(tput setaf 2) |------------------------------- OK $(tput sgr0) "
echo " |------------------------------- OK" >>${BACKUP_LOG_FILE}

else
echo "$(tput bold) $(tput setaf 1) |------------------------------- KO $(tput sgr0) "
echo " |------------------------------- KO" >>${BACKUP_LOG_FILE}

fi

echo " |-- Compression des bases de donnes $(tput setaf 3)INCREMENTAL $(tput sgr0)"
echo " |-- Compression des bases de donnes INCREMENTAL" >>${BACKUP_LOG_FILE}

#zip -r ${DEST_BDD_INC} ${BACKUPINCDAY_DIR} &>>${BACKUP_LOG_FILE}
tar czf "${DEST_BDD_INC}" -C "${BACKUPINCDAY_DIR}" . &>>${BACKUP_LOG_FILE}

if [ -e ${DEST_BDD_INC} ]; then
echo "$(tput bold) $(tput setaf 2) |------------------------------- OK $(tput sgr0) "
echo " |------------------------------- OK" >>${BACKUP_LOG_FILE}

echo " |-- Renommage du fichier"
echo " |-- Renommage du fichier" >>${BACKUP_LOG_FILE}

mv ${DEST_BDD_INC} /var/lib/mysql/BACKUP/BDD_INC_06_centreon-${DATE_DAY}.tgz &>>${BACKUP_LOG_FILE}

echo "$(tput bold) $(tput setaf 2) |------------------------------- OK $(tput sgr0) "
echo " |------------------------------- OK" >>${BACKUP_LOG_FILE}

else
echo "$(tput bold) $(tput setaf 1) |------------------------------- KO $(tput sgr0) "
echo " |------------------------------- KO" >>${BACKUP_LOG_FILE}

fi

# Transfert des fichiers
echo "-- Transfert des fichiers"
echo "-- Transfert des fichiers" >>${BACKUP_LOG_FILE}

scp BDD_FULL_centreon-* root@192.168.1.150:/var/backup/FULL &>>${BACKUP_LOG_FILE}

scp BDD_INC_* root@192.168.1.150:/var/backup/INC &>>${BACKUP_LOG_FILE}

# Message de fin
echo "-- Sauvegarde terminee, les fichiers de sauvegarde sont :"
echo " $(tput setaf 6)${BACKUPFULL_DIR}/BDD_INC_centreon-${DATE_DAY}.zip"
echo " ${BACKUPFULL_DIR}/BDD_FULL_centreon-${DATE_DAY}.zip$(tput sgr0) "

echo "-- Sauvegarde terminee, les fichiers de sauvegarde sont : " >>${BACKUP_LOG_FILE}
echo " ${BACKUPFULL_DIR}/BDD_INC_centreon-${DATE_DAY}.tgz" >>${BACKUP_LOG_FILE}
echo " ${BACKUPFULL_DIR}/BDD_FULL_centreon-${DATE_DAY}.zip" >>${BACKUP_LOG_FILE}

(echo -e "La sauvegarde du serveur de supervision est terminee avec succes\n\n"; cat "${BACKUP_LOG_FILE}") | mail -r Supervision -s "SUPERVISION : sauvegarde terminee" admin@tips-of-mine.fr

 

Taggé , , , .Mettre en favori le Permaliens.

Les commentaires sont fermés.