DebianLinux脚本。重启MongoDB

DebianLinux脚本。重启MongoDB,linux,mongodb,shell,debian,sh,Linux,Mongodb,Shell,Debian,Sh,帮助编写可以挂在CRON上的SH脚本。脚本应检查MongoDB是否删除文件mongod.lock并重新启动mongo服务器 if (mongo == down) { # rm /var/lib/mongodb/mongod.lock # /etc/init.d/mongodb restart } 如果要在承载mongodb的同一台机器上运行此脚本,请使用带有-z参数的nc命令检查mongodb是否正在侦听端口27017,如果没有,则在修复后将ru它 #!/bin/bash if ! nc

帮助编写可以挂在CRON上的SH脚本。脚本应检查MongoDB是否删除文件mongod.lock并重新启动mongo服务器

if (mongo == down) {
# rm /var/lib/mongodb/mongod.lock
# /etc/init.d/mongodb restart
}

如果要在承载mongodb的同一台机器上运行此脚本,请使用带有-z参数的nc命令检查mongodb是否正在侦听端口27017,如果没有,则在修复后将ru它

 #!/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作业。

编写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    
您绝对不应该强迫MongoDB在启动时运行修复;它应该使用日志自动从不干净的关机中恢复。该命令将重建数据库和索引,并将导致不必要的停机时间&如果没有足够的空间完成修复,则可能会导致重新启动失败。您只应删除锁文件并运行修复,作为修复的最后手段。