Mysqldump bir durum döndürüyor mu?


14

Mysqldump yardımcı programını kullanarak bir mysql db yedekler bir komut dosyası oluşturuyorum. Bu betiği "sh" kabuğuna yazıyorum. Komut dosyasında mysqldump (yani mysqldump komutu başarısız veya başarılı) çıktı durumunu yakalamak istiyorum, böylece komut dosyası başarılı olup olmadığını rapor edebilirsiniz.

  • Mysqldump bir çıkış durumu döndürüyor mu?

  • Birisi bana bunun nasıl yapılacağı konusunda talimat verebilir mi?


Sadece dosyanın yaratıldığını ve son satırın aşağıdaki gibi bir şey içerdiğini kontrol edebilirsiniz -- Dump completed on ...- Bir sorun varsa, durum böyle olmaz.
Ewan Heming

Ben kabuk dökümü düzgün dökümü ya da bazı durum üzerinden değil oluşturulur fikir almak istiyorum bu yüzden kabuk komut dosyası aracılığıyla dökümü oluşturuyorum.
krunal shah

Yanıtlar:


14

mysqldump döner

0 for Success
1 for Warning
2 for Not Found

Ayrıca stderr'e genişletilmiş bir hata mesajı yazdırır.

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

Döndürülen değeri şu şekilde inceleyebilirsiniz

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

Başarısızlık Başarısı hata iletisini e-postama geri gönderemiyorum? Lütfen yardımcı olun efendim ...
sqlchild

2020'de merak edilen bir sorun, MySQL 5 veya 8 bazı çıkış kodları yayar. bugs.mysql.com/bug.php?id=90538
joseluisq

1

Döküm bittikten sonra $? kabuk değişkeni. Eğer 0 ise - her şey yolunda gitti. Başka - hata.

# 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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.