Mysqldump restituisce uno stato?


14

Sto creando uno script che esegue il backup di un db mysql utilizzando l'utilità mysqldump. Sto scrivendo questo script nella shell "sh". Vorrei acquisire lo stato di output di mysqldump nello script (ovvero se il comando mysqldump non è riuscito o è riuscito) in modo da poter segnalare se lo script ha avuto esito positivo o meno.

  • Mysqldump restituisce uno stato di output?

  • Qualcuno può darmi istruzioni su come farlo?


Puoi semplicemente verificare che il file sia stato creato e che l'ultima riga contenga qualcosa del tipo -- Dump completed on ...: se si è verificato un problema, non sarà così.
Ewan Heming,

Sto creando il dump tramite script di shell, quindi voglio ottenere l'idea che il dump sia stato creato correttamente o meno attraverso un certo stato.
Krunal Shah,

Risposte:


14

mysqldump ritorna

0 for Success
1 for Warning
2 for Not Found

Stampa anche un messaggio di errore esteso su stderr, ad es

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

È possibile controllare il valore restituito in questo modo

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

non riesco a restituire il messaggio di errore Success of Failure alla mia e-mail? Per favore
aiutatemi

1

Dopo che il dump è finito, controlla $? variabile shell. Se è 0, tutto è andato bene. Altrimenti - errore.

# 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.