Bonjour à tous,
Je suis en train d'élaborer un script "mysqldump".
J'ai un soucis au niveau du fichier log.
En faite, je demande à mon script de sauvegarder dans un dossier daté un fichier .gzip de toutes les bdd mais aussi une archive pour chaque bdd existantes.
Au niveau du log, j'arrive à obtenir un résultat pour la grosse archive mais quand il s'agit de faire le log pour les autres bdd à l'unité, ça se complique.
Le log m'indique la réussite de sauvegarde de la dernière bdd du dossier mais pas des autres 🙄
Merci par avance pour votre aide.
Le script qui concerne la partie log :
# Récupération de la liste des bases de données existantes.
databases=`$MYSQL -h$MYSQL_HOST -u$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "($SKIPDATABASES)"`
# Sauvegarde des bases de données existantes en .sql dans des archives .gzip dans le dossier créé
for db in $databases; do
echo $db
$MYSQLDUMP --force --opt -h$MYSQL_HOST --user=$MYSQL_USER -p$MYSQL_PASSWORD --skip-lock-tables --events --databases $db | $GZIP --stdout --best > "$BACKUP_DIR/$DATE/$db.sql.gz"
done
# Sauvegarde des bases de données existantes dans un fichier .sql et dans une seule archive .gzip dans le dossier créé
for db in $databases; do
echo $db
$MYSQLDUMP --force --opt -h$MYSQL_HOST --user=$MYSQL_USER -p$MYSQL_PASSWORD --all-databases | $GZIP --stdout --best > "$BACKUP_DIR/$DATE/bdd_complete.sql.gz"
done
# Écrire dans le fichier log
echo "Opération terminée" >> $LOGFILE
echo "Sauvegarde réussie de 'bdd_complete.sql.gz' dans le dossier '$BACKUP_DIR/$DATE'" >> $LOGFILE
echo "Sauvegarde réussie de '$db.sql.gz' dans le dossier '$BACKUP_DIR/$DATE'" >> $LOGFILE
Et le résultat dans le fichier log :
----------------------
08/10/2018 à 22:35:25
----------------------
Opération terminée
Sauvegarde réussie de 'bdd_complete.sql.gz' dans le dossier '/xxxxxx/xxxxx/sql/08.10.2018_2235'
Sauvegarde réussie de 'phpmyadmin.sql.gz' dans le dossier '/xxxxxx/xxxxx/sql/08.10.2018_2235'
Sauf qu'entre les deux, il manque quelques lignes 😤