Попросите MongoDB, если это Мастер из bashscript

Мой mongodb должен запускать резервное копирование каждый день. Он работает с одним ведущим и двумя подчиненными устройствами.

Мне нужно сделать резервную копию ОДНОГО из них (потому что это всего лишь реплики)

Самый простой способ - запустить резервную копию script только на одном экземпляре. но что, если этот экземпляр не работает? Поэтому я подумал, что было бы неплохо запустить backupscript на главном сервере, потому что всегда есть один мастер, даже если один из остальных отключен.

Поэтому мне нужно настроить мой backupscript в cron.daily, чтобы спросить mongodb, если он является текущим мастером.

Как это сделать?

Ответ 1

Вы можете использовать опцию --eval для mongo для этого:

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

И затем проверьте, есть ли MASTER == "true" в вашей оболочке script.