Voici une alternative plus globale mais plus sale, au cas où elle pourrait être utile :
#!/bin/shBASE_DIR=/var/backups/mysql
# On essaie de diminuer la priorité de la chose# Aucune importance si les utilitaires ne sont pas dispos
renice 15 -p $$ >/dev/null 2>&1
ionice -c 3 -p $$ >/dev/null 2>&1# Arrêt à la moindre erreur non-catchéeset -e
docker ps --format "{{.ID}} {{.Names}}"| egrep "(mysql|mariadb)"|whileread CONTAINER_ID CONTAINER_NAMES;do# Note : CONTAINER_NAMES peut contenir plusieurs noms qui sont séparés par des vigules# et ces noms peuvent contenir des '/'BACKUP_BASENAME=bdd_"$(printf$CONTAINER_NAMES| tr -c '[:alnum:]''-')"BACKUP_FILENAME="$BACKUP_BASENAME"_"$CONTAINER_ID"_"$( date +\%Y\%m\%d-\%H\%M\%S )".sql.gz
docker exec"$CONTAINER_ID" bash -c 'mysqldump -u root -p$MYSQL_ROOT_PASSWORD --add-drop-table --all-databases'| gzip > "$BASE_DIR/$BACKUP_FILENAME"# Suppression des vieux backups
find "$BASE_DIR" -maxdepth 1 -name "$BACKUP_BASENAME*" -mtime +10 -delete
done
[^] # Re: mysqldump
Posté par nullard3d . En réponse au message Sauvegarde mariadb dans docker. Évalué à 1. Dernière modification le 14 mai 2021 à 02:49.
Voici une alternative plus globale mais plus sale, au cas où elle pourrait être utile :