询问MongoDB,如果它是主从一个bashscript

我的mongodb应该每天运行备份。 它运行一个主人和两个奴隶。

我需要做一个备份(因为他们只是副本)

最简单的方法是只在一个实例上运行备份脚本。 但如果这种情况下来呢? 所以我认为在master上运行backupscript会很好,因为总是有一个master,即使其他的down掉了。

所以我需要在cron.daily中调整我的备份,问问MongoDB是否是当前的主。

我怎么做?

您可以使用--eval选项mongo来执行此操作:

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

然后在shell脚本中测试MASTER == "true"