2013-07-23 22 views
10

Mongodb của tôi là nghĩa vụ phải chạy một bản sao lưu mỗi ngày. Nó chạy với một chủ và hai nô lệ.Hãy hỏi MongoDB nếu nó là Thạc sĩ trong một bashscript

tôi cần phải thực hiện một bản sao lưu của một trong số họ (vì họ chỉ cần bản sao)

Cách đơn giản nhất sẽ được để chạy các kịch bản sao lưu trên chỉ có một ví dụ. nhưng nếu trường hợp này là gì? Vì vậy, tôi nghĩ rằng nó sẽ là tốt để chạy bản sao lưu trên tổng thể, vì luôn luôn có một bậc thầy, ngay cả khi một trong những người khác là xuống.

Vì vậy, tôi cần phải tinh chỉnh bản sao lưu của mình trong cron.daily để hỏi mongodb nếu đó là bản gốc hiện tại.

Tôi làm như thế nào?

Trả lời

16

Bạn có thể sử dụng tùy chọn --eval-mongo để làm điều này:

MASTER=`mongo --quiet --eval "d=db.isMaster(); print(d['ismaster']);"` 

Và sau đó kiểm tra xem MASTER == "true" trong shell script của bạn.

+2

+1 Tôi đã sử dụng 'mongo --quiet --eval 'db.isMaster(). Ismaster'' –