#!/bin/bash # if [ "$(id -u)" != "0" ]; then echo "Faut être 'root' pour lancer ce script, patate!" 1>&2 exit 1 fi ## Vérif du paramètre fournit case $1 in "quotidien" | "hebdomadaire" | "mensuel" | "annuel" ) REP="/mnt/muffin/backups/MUFFIN/sqldumps/"$1;; * ) echo echo "SYNTAXE: sqlbackup.sh [periode]" echo " [periode] doit être "quotidien", "hebdomadaire", "mensuel" ou "annuel"." echo exit 100;; esac UTIL="utilisateur_sqldump" MDP="mdp_utilisateur_sqldump" ## Sauvegarde compressée des bases de donnees en fichiers .gz echo ===== `date +%Y-%m-%d` `date +%H:%M` ===== echo "Sauvegarde de l'ensemble des bases dans un fichier unique..." mysqldump -u$UTIL -p$MDP --lock-all-tables --all-databases --events | gzip > $REP/all_databases_`date +%Y-%m-%d`.gz echo ========================================== #echo "Sauvegarde de la base information_schema..." mysqldump -u$UTIL -p$MDP --lock-all-tables information_schema | gzip > $REP/information_schema_`date +%Y-%m-%d`.gz echo "Sauvegarde des bases Kodi les plus récentes :" # Déterminer la base kodi_music la plus récente MUSICDB=$(mysql -u$UTIL -p$MDP -e "Show databases;" | grep "kodi_music"); echo "$MUSICDB..." mysqldump -u$UTIL -p$MDP --lock-all-tables $MUSICDB | gzip > $REP/${MUSICDB}_`date +%Y-%m-%d`.gz # Déterminer la base kodi_video la plus récente VIDEODB=$(mysql -u$UTIL -p$MDP -e "Show databases;" | grep "kodi_video") echo "$VIDEODB..." mysqldump -u$UTIL -p$MDP --lock-all-tables $VIDEODB | gzip > $REP/${VIDEODB}_`date +%Y-%m-%d`.gz echo "Sauvegarde de la base mysql..." mysqldump -u$UTIL -p$MDP --lock-all-tables --events mysql | gzip > $REP/mysql_`date +%Y-%m-%d`.gz echo "Sauvegarde de la base piwigo..." mysqldump -u$UTIL -p$MDP --lock-all-tables piwigo | gzip > $REP/piwigo_`date +%Y-%m-%d`.gz echo ========================================== #echo "===== Suppression des sauvegardes obsolètes =====" echo "Suppression des sauvegardes quotidiennes vieilles de plus de 5 jours..." find /mnt/muffin/backups/MUFFIN/sqldumps/quotidien/ -type f -mtime +4 | xargs -r rm echo "Suppression des sauvegardes hebdomadaires vieilles de plus de 31 jours..." find /mnt/muffin/backups/MUFFIN/sqldumps/hebdomadaire/ -type f -mtime +30 | xargs -r rm echo "Suppression des sauvegardes mensuelles vieilles de plus de 365 jours..." find /mnt/muffin/backups/MUFFIN/sqldumps/mensuel/ -type f -mtime +364 | xargs -r rm ## Pas de purge des sauvegardes annuelles