Mysqldump renvoie-t-il un statut?

14

Je crée un script qui sauvegarde une base de données mysql en utilisant l'utilitaire mysqldump. J'écris ce script dans le shell "sh". Je voudrais capturer l'état de sortie de mysqldump dans le script (c'est-à-dire si la commande mysqldump a échoué ou réussi) afin que je puisse signaler si le script a réussi ou non.

  • Mysqldump renvoie-t-il un état de sortie?

  • Quelqu'un peut-il me donner des instructions sur la façon de procéder?

krunal shah
la source
Vous pouvez simplement vérifier que le fichier a été créé et que la dernière ligne contient quelque chose comme -- Dump completed on ...- En cas de problème, ce ne sera pas le cas.
Ewan Heming
Je crée le vidage via le script shell, donc je veux avoir l'idée que le vidage est correctement créé ou non via un statut.
krunal shah

Réponses:

14

mysqldump revient

0 for Success
1 for Warning
2 for Not Found

Il imprime également un message d'erreur étendu sur stderr, par exemple

mysqldump: Got error: 1049: Unknown database 'dbname' when selecting the database

Vous pouvez inspecter la valeur retournée comme ceci

mysqldump -u DBuser -pDBpassword database >database.sql 2>database.err 
if [ "$?" -eq 0 ]
then
    echo "Success"
else
    echo "Mysqldump encountered a problem look in database.err for information"
fi
user9517
la source
je ne peux pas renvoyer le message d'erreur Success of Failure à mon e-mail? S'il vous plaît, aidez monsieur ...
sqlchild
1

Une fois le vidage terminé, vérifiez $? variable shell. Si c'est 0 - tout s'est bien passé. Sinon - erreur.

# mysqldump -u aaa -d msf>/dev/null
mysqldump: Got error: 1045: Access denied for user 'aaa'@'localhost' (using password: YES) when trying to connect
# echo $?
2
Dmytro Leonenko
la source