2013-07-23 11 views
10

Il mio mongodb dovrebbe eseguire un backup ogni giorno. Funziona con un maestro e due schiavi.Chiedi a MongoDB se è Master di un bashscript

ho bisogno di fare un backup di uno di loro (perché sono solo repliche)

Il modo più semplice sarebbe quella di eseguire lo script di backup su una sola istanza. ma cosa succede se questa istanza è giù? Quindi ho pensato che sarebbe stato utile eseguire il backupscript sul master, perché c'è sempre un master, anche se uno degli altri è inattivo.

Quindi ho bisogno di modificare il mio script di backup in cron.daily per chiedere a mongodb se è il master corrente.

Come faccio?

risposta

16

È possibile utilizzare l'opzione --eval-mongo per fare questo:

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

E poi verificare se MASTER == "true" nel vostro script di shell.

+2

+1 Ho usato 'mongo --quiet --eval 'db.isMaster(). Ismaster'' –

Problemi correlati