#!/bin/bash ################################################################ ## ## MySQL Database Backup Script ## Modifié par Tonio le 03/05/2020 ## Written By: Rahul Kumar ## URL: https://tecadmin.net/bash-script-mysql-database-backup/ ## Last Update: Jan 05, 2019 ## ################################################################ export PATH=/bin:/usr/bin:/usr/local/bin TODAY=`date +"%d%b%Y"` ################################################################ ################## Mettre à jour les valeurs suivantes ######### # Répertoire par défaut sous debian DB_BACKUP_PATH='/var/backups/dbbackup' MYSQL_HOST='localhost' MYSQL_PORT='3306' MYSQL_USER='root' MYSQL_PASSWORD='.2r2RZ3SHre5' BACKUP_RETAIN_DAYS=10 ## Nombre de jour de rétention ################################################################# mkdir -p ${DB_BACKUP_PATH}/${TODAY} echo "Démarrage de la sauvegarde de TOUTES les bases" # Méthode classique mysqldump --all-databases \ -h ${MYSQL_HOST} \ -P ${MYSQL_PORT} \ -u ${MYSQL_USER} \ -p${MYSQL_PASSWORD} \ | gzip > ${DB_BACKUP_PATH}/${TODAY}/mariadb-${TODAY}.sql.gz # Option sans mot de passe / Méthode direct # mysqldump --all-databases | gzip > ${DB_BACKUP_PATH}/${TODAY}/mariadb-${TODAY}.sql.gz if [ $? -eq 0 ]; then echo "Bases de données sauvegarde terminées" else echo "Il y a des erreurs à résoudre lors de la sauvegarde" exit 1 fi ##### Effacer les vielles sauvegardes plus vieux que {BACKUP_RETAIN_DAYS} ##### DBDELDATE=`date +"%d%b%Y" --date="${BACKUP_RETAIN_DAYS} days ago"` if [ ! -z ${DB_BACKUP_PATH} ]; then cd ${DB_BACKUP_PATH} if [ ! -z ${DBDELDATE} ] && [ -d ${DBDELDATE} ]; then rm -rf ${DBDELDATE} fi fi ### Fin du script ####