Liệu mysqldump có trả lại trạng thái không?


14

Tôi đang tạo một tập lệnh sao lưu db mysql bằng tiện ích mysqldump. Tôi đang viết kịch bản này trong shell "sh". Tôi muốn nắm bắt trạng thái đầu ra của mysqldump trong tập lệnh (nghĩa là nếu lệnh mysqldump không thành công hoặc thành công) để tôi có thể báo cáo nếu tập lệnh thành công hay không.

  • Liệu mysqldump có trả lại trạng thái đầu ra không?

  • Ai đó có thể xin vui lòng cho tôi hướng dẫn về cách làm điều này?


Bạn chỉ có thể kiểm tra xem tệp đã được tạo chưa và dòng cuối cùng có nội dung như -- Dump completed on ...- Nếu có sự cố thì đây sẽ không phải là trường hợp.
Ewan Heming

Tôi đang tạo kết xuất thông qua shell script vì vậy tôi muốn nhận kết xuất ý tưởng được tạo đúng hay không thông qua một số trạng thái.
kuggal shah

Câu trả lời:


14

lợi nhuận của mysqldump

0 for Success
1 for Warning
2 for Not Found

Nó cũng in một thông báo lỗi mở rộng đến stderr, vd

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

Bạn có thể kiểm tra giá trị trả lại như vậy

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

tôi không thể trả lại thông báo lỗi Thành công thất bại vào email của mình? Xin hãy giúp ngài ...
sqlchild

1

Sau khi đổ xong kiểm tra $? biến vỏ. Nếu là 0 - tất cả đều ổn. Khác - lỗi.

# 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.