2015-06-08 30 views
0

我在我們的linux服務器上編寫了一個關於從MongoDB中提取報告的bash腳本。實際上,還有兩個副本服務器,如果當時它是主服務器,我應該提取報告。如果不是,腳本將不會提取任何內容。從bash中識別mongo服務器狀態

有沒有辦法從shell獲取這些信息?謝謝。

回答

2

你必須運行一個命令來找出它是否是PRIMARY。

我有一個 「JS」 文件,其中包含此:

`printjson(db.isMaster().ismaster); 

然後在我的bash腳本我運行執行這一點,並採取相應的行動:

PRIMARY=`/usr/bin/mongo ${SERVERNAME}:${PORT} --quiet  ${SCRIPTDIR}/isMaster.js`; 
# 
# 
if [ "$PRIMARY" != "false" ]; then 
# it is the PRIMARY 

歡呼

+0

謝謝,我只是用它是這樣的:mongo --quiet --eval「d = db.isMaster(); print(d ['ismaster']);」 – skynyrd