Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb shell脚本-检查mongod服务器是否正在运行_Mongodb_Shell - Fatal编程技术网

Mongodb shell脚本-检查mongod服务器是否正在运行

Mongodb shell脚本-检查mongod服务器是否正在运行,mongodb,shell,Mongodb,Shell,我有一个shell脚本来执行一些mongo db操作: e、 g.mongo testdb--eval“db.dropDatabase()” 但是,如果mongod服务器没有运行,我会得到: MongoDB shell version: 2.0.4 connecting to: testdb Tue May 14 04:33:58 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84 有没有办法在mongo中检查连接状态?最

我有一个shell脚本来执行一些mongo db操作:

e、 g.
mongo testdb--eval“db.dropDatabase()”

但是,如果mongod服务器没有运行,我会得到:

MongoDB shell version: 2.0.4
connecting to: testdb
Tue May 14 04:33:58 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84
有没有办法在mongo中检查连接状态?最终我想要的是:

if(mongod is running):
    mongo testdb --eval "db.dropDatabase()"
else:
    echo "pls make sure your mongod is running"
    exit 1

您应该能够创建一个bash脚本,如下所示:

mongo --eval "db.stats()"  # do a simple harmless command of some sort

RESULT=$?   # returns 0 if mongo eval succeeds

if [ $RESULT -ne 0 ]; then
    echo "mongodb not running"
    exit 1
else
    echo "mongodb running!"
fi

这就是我运行来检查mongod是否启动的原因:

# this script checks if the mongod is running.
# if not, send mail
#

EMAILIST=dba@wherever



`ps -A | grep -q '[m]ongod'`

if [ "$?" -eq "0" ]; then
    exit 0
else
    echo "The mongod server SB2MDB01 is DOWN" | mailx \
    -s "Server DOWN: SB2MDB01" $EMAILIST
fi

exit 0

尝试在shell脚本中运行此命令:-

蒙哥德酒店


如果该值是数字,则您知道进程正在运行,如果您得到一个空值,则将其标记为服务未运行…

如果您具有管理权限,还可以执行sudo systemctl status mongod,这将为您提供许多有用的附加信息:

mongod.service - MongoDB Database Server
   Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-03-14 09:26:53 UTC; 5 weeks 9 days ago
     Docs: https://docs.mongodb.org/manual
 Main PID: 420 (mongod)
   CGroup: /system.slice/mongod.service
           └─420 /usr/bin/mongod --config /etc/mongod.conf

一个简单的方法是:您可以在Windows或bash中检查
%errorlevel%
,查看mongo命令是否返回错误代码。@bash中的WiredPairie。如果您设置bind\u ip和portHi,如何使用shell脚本检查mongodb是否正在运行以及是否在身份验证模式下运行,并捕获错误代码。该脚本即使在今天也很好。如果您使用的是auth,请创建一个具有简单“读取”角色的X.509用户。