2013-07-23 15 views
10

Mój mongodb ma codziennie wykonywać kopię zapasową. Działa z jednym kapitanem i dwoma niewolnikami.Zapytaj MongoDB, czy to Master z bashscriptu

muszę zrobić kopię zapasową jeden z nich (bo oni po prostu Repliki)

Najprostszym sposobem byłoby uruchomić skrypt kopii zapasowej tylko na jednej instancji. ale co, jeśli ta instancja nie działa? Pomyślałem więc, że dobrze byłoby uruchomić kopię zapasową na kapitanie, bo zawsze jest jeden mistrz, nawet jeśli jeden z pozostałych nie działa.

Potrzebuję więc zmodyfikować mój backup w cron.daily, aby zapytać mongodb, czy jest to obecny wzorzec.

Jak to zrobić?

Odpowiedz

16

Można użyć opcji --eval do mongo to zrobić:

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

A następnie sprawdzić, czy MASTER == "true" w skrypcie powłoki.

+2

+1 Użyłem 'mongo --quiet --eval 'db.isMaster(). Ismaster'' –

Powiązane problemy