Question Mysqldump renvoie-t-il un statut?


Je crée un script qui sauvegarde une base de données mysql à l'aide de 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 une sortie? statut?

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


10
2018-03-21 13:51


origine


Vous pouvez simplement vérifier que le fichier a été créé et que la dernière ligne contient quelque chose comme -- Dump completed on ... - S'il y avait un problème, alors ce ne sera pas le cas. - Ewan Heming
Je crée dump par le biais d'un script shell, je souhaite donc avoir l'idée que le dump est correctement créé ou non via un statut quelconque. - krunal shah


Réponses:


mysqldump est de retour

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 renvoyée comme si

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

11
2018-03-21 14:22



Je ne peux pas renvoyer le message d'erreur Success of Failure à mon courrier électronique? S'il vous plaît aider monsieur ... - sqlchild


Après 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

1
2018-03-21 14:23