¿Mysqldump devuelve un estado?

14

Estoy creando un script que hace una copia de seguridad de un mysql db usando la utilidad mysqldump. Estoy escribiendo este script en el shell "sh". Me gustaría capturar el estado de salida de mysqldump en el script (es decir, si el comando mysqldump falló o tuvo éxito) para poder informar si el script tuvo éxito o no.

  • ¿Mysqldump devuelve un estado de salida?

  • ¿Alguien puede darme instrucciones sobre cómo hacer esto?

Krunal Shah
fuente
Puede verificar que el archivo se haya creado y que la última línea contenga algo como -- Dump completed on ...: si hubo un problema, este no será el caso.
Ewan Heming
Estoy creando un volcado a través del script de shell, así que quiero tener la idea de que el volcado se crea correctamente o no a través de algún estado.
Krunal Shah

Respuestas:

14

mysqldump regresa

0 for Success
1 for Warning
2 for Not Found

También imprime un mensaje de error extendido a stderr, por ejemplo

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

Puede inspeccionar el valor devuelto así

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
usuario9517
fuente
¿No puedo devolver el mensaje de error de Éxito de falla a mi correo electrónico? Por favor ayuda señor ...
sqlchild
1

Después de que el volcado haya terminado, verifique $? variable de concha. Si es 0, todo salió bien. De lo contrario, error.

# 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
fuente