O mysqldump retorna um status?


14

Estou criando um script que faz backup de um banco de dados mysql usando o utilitário mysqldump. Estou escrevendo este script no shell "sh". Gostaria de capturar o status de saída do mysqldump no script (ou seja, se o comando mysqldump falhou ou teve êxito), para que eu possa relatar se o script foi bem-sucedido ou não.

  • O mysqldump retorna um status de saída?

  • Alguém pode me dar instruções sobre como fazer isso?


Você pode apenas verificar se o arquivo foi criado e a última linha contém algo como -- Dump completed on ...- Se houve um problema, esse não será o caso.
Ewan Heming

Estou criando dump através do shell script, então eu quero que a ideia dump seja criada corretamente ou não através de algum status.
precisa saber é o seguinte

Respostas:


14

retorna mysqldump

0 for Success
1 for Warning
2 for Not Found

Também imprime uma mensagem de erro estendida no stderr, por exemplo

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

Você pode inspecionar o valor retornado dessa forma

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

não consigo retornar a mensagem de erro Success of Failure para o meu email? Por favor ajude senhor ...
sqlchild

1

Depois que o despejo terminar, verifique $? variável de shell. Se for 0 - tudo correu bem. Senão - erro.

# 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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.