O mysqldump retorna um status?

10

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

  • O mysqldump retorna uma saída status?

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

por krunal shah 21.03.2011 / 14:51

2 respostas

11

mysqldump retorna

0 for Success
1 for Warning
2 for Not Found

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

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

Você pode inspecionar o valor retornado assim

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
    
por 21.03.2011 / 15:22
1

Após o despejo, verifique $? variável de shell. Se é 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
    
por 21.03.2011 / 15:23