Apakah mysqldump mengembalikan status?

14

Saya membuat skrip yang membuat cadangan mysql db menggunakan utilitas mysqldump. Saya menulis skrip ini di shell "sh". Saya ingin menangkap status keluaran mysqldump di skrip (yaitu jika perintah mysqldump gagal atau berhasil) sehingga saya dapat melaporkan apakah skrip berhasil atau tidak.

  • Apakah mysqldump mengembalikan status keluaran?

  • Bisakah seseorang tolong beri saya petunjuk tentang cara melakukan ini?

krunal shah
sumber
Anda bisa memeriksa apakah file tersebut dibuat dan baris terakhir berisi sesuatu seperti -- Dump completed on ...- Jika ada masalah maka ini tidak akan terjadi.
Ewan Heming
Saya membuat dump melalui skrip shell jadi saya ingin ide dump dibuat dengan benar atau tidak melalui beberapa status.
krunal shah

Jawaban:

14

mysqldump kembali

0 for Success
1 for Warning
2 for Not Found

Ini juga mencetak pesan kesalahan yang diperluas ke stderr misalnya

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

Anda dapat memeriksa nilai yang dikembalikan seperti itu

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
user9517
sumber
saya tidak dapat mengembalikan pesan kesalahan Success of Failure ke email saya? Tolong bantu Pak ...
sqlchild
1

Setelah dump selesai cek $? variabel shell. Jika 0 - semua berjalan dengan baik. Lain - kesalahan.

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