This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
linux:mysql_bkp [2022/01/14 14:41] manu [MySQL backup] |
linux:mysql_bkp [2022/01/14 14:43] (current) manu |
||
---|---|---|---|
Line 2: | Line 2: | ||
===== script dump ===== | ===== script dump ===== | ||
+ | |||
+ | ==== script 1 ==== | ||
+ | |||
+ | <code> | ||
+ | #!/bin/bash | ||
+ | # Mettre un date au nom du fichier | ||
+ | DATE=$(date +"%Y%m%d") | ||
+ | |||
+ | # Dossier de sauvegarde | ||
+ | BACKUP_DIR="/backup/mysqldump" | ||
+ | |||
+ | # MySQL username/password | ||
+ | MYSQL_USER="root" | ||
+ | MYSQL_PASSWORD="YOURSECUREPASSWORD" | ||
+ | |||
+ | # Commandes MySQL nécessaires pour faire le backup | ||
+ | MYSQL=/usr/bin/mysql | ||
+ | MYSQLDUMP=/usr/bin/mysqldump | ||
+ | |||
+ | # Bases de données MySQL que vous voulez ignorer | ||
+ | SKIPDATABASES="information_schema|performance_schema|mysql|database1|database2" | ||
+ | |||
+ | # Rétention des données (les jours pour garder les backups) | ||
+ | RETENTION=5 | ||
+ | |||
+ | # Création d'un nouveau dossier avec la date du jour | ||
+ | mkdir -p $BACKUP_DIR/$DATE | ||
+ | |||
+ | # Donne la liste de toutes les bases des données. | ||
+ | databases=`$MYSQL -u$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "($SKIPDATABASES)"` | ||
+ | |||
+ | # Copier les bases des données distinctes et fait un fichier gzip pour chaque database. | ||
+ | for db in $databases; do | ||
+ | echo $db | ||
+ | $MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --skip-lock-tables --events --databases $db | gzip > "$BACKUP_DIR/$DATE/$db.sql.gz" | ||
+ | done | ||
+ | |||
+ | # Efface les fichiers plus vieux que votre date de RETENTION | ||
+ | find $BACKUP_DIR/* -mtime +$RETENTION -delete | ||
+ | </code> | ||
+ | |||
+ | ==== script 2 ==== | ||
<code> | <code> |