帮助编写可以挂在CRON上的SH脚本。该脚本应检查MongoDB是否删除文件mongod.lock并重新启动mongo服务器。
if (mongo == down) {
# rm /var/lib/mongodb/mongod.lock
# /etc/init.d/mongodb restart
}
答案 0 :(得分:0)
如果要在托管mongodb的同一台机器上运行此脚本,请使用带有nc
参数的-z
命令来检查mongodb是否正在侦听端口27017,如果不是,则会它修复后。
#!/bin/bash
if ! nc -z localhost 27017
then
/usr/bin/mongod --repair --dbpath /path/to/db
/usr/bin/mongod --fork --syslog --dbpath /path/to/db
fi
您应该为将运行mongodb的用户添加cron作业。
答案 1 :(得分:-1)
编写bash脚本的第一次经验。以下是一些选择:
#!/usr/bin/env bash
function now_time() {
date +"%Y-%m-%d %H:%M:%S"
}
function logging() {
echo "`now_time` [$1] $2" >> /var/mongoRestart.log
}
A=`/etc/init.d/mongodb status`
if [[ $A == "Checking status of database: mongodb running." ]]; then
echo 'true'
else
rm /var/lib/mongodb/mongod.lock
/etc/init.d/mongodb restart
logging FALSE 'mongodb down'
fi