Linux下的mongodb服务监视脚本(启动服务)

前些天,一位开发同事找到我,说他测试环境的 mongodb 经常挂掉,要我写一个监控或复活的脚本。我觉得很奇怪,测试环境又没啥负载,经常挂掉肯定有非常规原因。
跑过去看了一下日志,发现存在stop记录,我就纳闷了,没人操作他还会自己stop。这明显不是挂掉了,于是到history中看了下同事的启动命令:

代码如下:

/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data/ --logpath=/data/mongodb.log --logappend &

原来如此!因为他没有用nohup启动,所以只要他的终端离线或者关闭,mongodb就会自动退出了!解决办法很简单,如下启动即可:

代码如下:

nohup /usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data/ --logpath=/data/mongodb.log --logappend >/dev/null 2>&1 &

这样敲命令也着实苦逼,所以从网上找了一个mongodb服务脚本就舒服多了:

#!/bin/sh
#
#mongod - Startup script for mongod
#
# chkconfig: - 85 15
# description: Mongodb database.
# processname: mongod
# Source function library

. /etc/rc.d/init.d/functions
# things from mongod.conf get there by mongod reading it
# OPTIONS
OPTIONS=" --dbpath=/home/data/mongodb/ --logpath=/home/data/mongodb/mongodb.log --logappend &"
#mongod
mongod="/usr/local/mongodb/bin/mongod"
lockfile=/var/lock/subsys/mongod
start()
{
 echo -n $"Starting mongod: "
 daemon $mongod $OPTIONS
 RETVAL=$?
 echo
 [ $RETVAL -eq 0 ] && touch $lockfile
}

stop()
{
 echo -n $"Stopping mongod: "
 killproc $mongod -QUIT
 RETVAL=$?
 echo
 [ $RETVAL -eq 0 ] && rm -f $lockfile
}

restart () {
    stop
    start
}
ulimit -n 12000
RETVAL=0

case "$1" in
 start)
  start
  ;;
 stop)
  stop
  ;;
 restart|reload|force-reload)
  restart
  ;;
 condrestart)
  [ -f $lockfile ] && restart || :
  ;;
 status)
  status $mongod
  RETVAL=$?
  ;;
 *)
  echo "Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"
  RETVAL=1
esac
exit $RETVAL

将代码保存到 /etc/init.d/mongodb,然后使用 chmod +x /etc/init.d/mongodb 添加执行权限。
现在,就可以使用 service 命令来控制mongodb了:

代码如下:

service mongodb start|stop|restart
#或
/etc/init.d/mongodb start|stop|restart

非常简单,贴到博客记录一下,以备不时之需。

(0)

相关推荐

  • Linux服务器安装PHP MongoDB扩展的方法

    本文将讲述一下本人安装MongoDB扩展的过程,大家可以略作参考 安装环境 Linux环境:CentOS 6.5 Apache版本:2.4 PHP版本:5.4.3 MongoDB版本:2.6.5 一.下载Mongo-php扩展安装包 可以从Github上面下载,地址是https://github.com/mongodb/mongo-php-driver-legacy 下载好的文件放到随意一个目录,然后进行解压. 安装前需要安装好一系列的编译工具,如果已经安装,可以跳过此步. 安装编译工具 yum

  • Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录

    System.out和System.err都被打印到catalina.out.catalina.out不会rotate.一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响. 1.可通过修改conf/logging.properties日志配置文件来屏蔽掉这部分的日志信息. [root@localhost conf]# pwd /usr/local/tomcat/conf [root@localhost conf]# cp logging.pr

  • MongoDB学习笔记—Linux下搭建MongoDB环境

    1.MongoDB简单说明 a MongoDB是由C++语言编写的一个基于分布式文件存储的开源数据库系统,它的目的在于为WEB应用提供可扩展的高性能数据存储解决方案. b MongoDB是一个介于关系型数据库和非关系型数据库之间的产品,是非关系型数据库当中功能最丰富,最像关系型数据库的.它支持的数据结构非常松散,会将数据存储为一个文档,数据结构由键值对(key=>value)组成,是类似于json的bson格式, c MongoDB最大的特点就是它支持的查询语言非常强大,其语法有点类似于面向对象

  • Windows或Linux系统中备份和恢复MongoDB数据的教程

    windows下面mongodb数据库备份和恢复 我可以讲数据备份到c:\data\dump目录下面,首先创建这个路径.然后进入到mongodb的bin目录下面 我的是: C:\Program Files\mongodb\bin 备份脚本是: //备份 mongodump -h 127.0.0.1:27017 -d test -o c:\data\dump 恢复脚本是: //恢复 mongorestore -h 127.0.0.1:27017 -d test --directoryperdb c

  • Linux系统下MongoDB的简单安装与基本操作

    Mongo DB ,是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式,备受当前IT从业人员的青睐.Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB中 每一条记录都是一个Document对象.Mongo DB最大的优势在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作. 一.下载mongodb 前往mongodb官网下载页面:https://www.mongodb.org/downloads下载

  • 在Linux ubuntu下安装mongodb的方法

    一.下载.安装对应版本 官网下载地址如下: www.mongodb.org/downloads #通过CURL下载 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1404-3.2.0.tgz #解压 tar -zxvf mongodb-linux-x86_64-ubuntu1404-3.2.0.tgz #移动 mv mongodb-linux-x86_64-ubuntu1404-3.2.0/ /usr/lo

  • Linux下的mongodb服务监视脚本(启动服务)

    前些天,一位开发同事找到我,说他测试环境的 mongodb 经常挂掉,要我写一个监控或复活的脚本.我觉得很奇怪,测试环境又没啥负载,经常挂掉肯定有非常规原因. 跑过去看了一下日志,发现存在stop记录,我就纳闷了,没人操作他还会自己stop.这明显不是挂掉了,于是到history中看了下同事的启动命令: 复制代码 代码如下: /usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data/ --logpath=/data/mongod

  • Linux下的 mariadb 使用 root 用户启动方式(推荐)

    近日因测试安全产品需要,想调整mariadb的启动用户为root, 经历一番波折后终于成功! 注意:以root身份启动mysql是一项非常危险行为,相当于给了数据库操作用户(数据库管理员或黑客)一个通过mysql对系统直接操作的通道! 实际上是官方不允许root启动的, 因此在一般启动方式下root启动会返回启动失败,并于 /var/log/mariadb/mariadb.log 中提示 Please consult the Knowledge Base to find out how to r

  • Linux下安装MongoDB的实现步骤

    Linux下安装MongoDB的实现步骤 Mongo DB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐.Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB中 每一条记录都是一个Document对象.Mongo DB最大的优势在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作.本文介绍了如何快速安装mongodb供大家参考. 一.安装配置mongodb Step 1

  • linux下安装mongodb教程

    MongoDB是跨平台的,既可以在windows上安装,也可以在linux下安装,这里我们着重介绍Linux下的MongoDB安装. ** 1.MongoDB 提供了 linux 各发行版本 64 位的安装包,你可以在官网下载安装包. curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.12.tgz 我竟然下载了27分钟.... 2.默认下载路径是到用户目录下的Downloads目录,将其解压 tar -zxvf m

  • linux下RPM包安装基于xinetd的服务的管理

    目录 前言 1.基于xinetd服务的启动管理 (1)telnet服务安装 (2)telnet服务启动 2.基于xientd服务的自启动管理 前言 现在Linux系统中基于xinetd的服务越来越少了,但Linux系统中还是有基于xinetd的服务的,所以我们还是需要了解一下基于xinetd的服务的管理. 1.基于xinetd服务的启动管理 我们使用telnet服务来举例,telnet服务是用来进程系统远程管理的,端口是23.不过需要注意的是telnet的远程管理数据在网络当中是明文传输,非常不

  • Linux下文件剪切的shell脚本实现代码

    需求描述 编写shell脚本实现Linux下不同目录(路径)之间的文件的剪切(移动)操作. 其中,文件移动之前所在的目录称为源目录,文件移动之后所在的目录称为目的目录.要求当源目录不存在.源目录下无文件及剪切文件成功时,均要在屏幕上输出相关的日志信息:并且,在程序执行之前,只有源目录是存在的,目的目录需要由程序创建. shell脚本 umask 0000 if [ -d $1 ] then fcnt=`ls -l $1 | wc -l` if [ $fcnt -ne 1 ] then mkdir

  • 使用Python编写一个在Linux下实现截图分享的脚本的教程

    引子 Linux下不支持QQ等功能丰富的IM,虽然可以通过wine运行QQ2012,但是还是喜欢在gtalk群中聊天,gtalk群不支持图片方式,这就要靠我们大家自己来解决了,eleven开放了一个Image上传和显示接口,提供了使用curl来解决,但是我们公司的网络使用squid禁止了curl的访问,所以整天看他们这么爽的分享图片我也不甘心阿,所以就使用Python写了一个分享图片的脚本 实现 使用scrot截图,然后使用urllib2库上传图片,如果存在PyQt4库则会将结果放到剪贴板上,如

  • linux下监控网络流量的脚本

    我看了下,linux下的/proc/net/dev记录了每块网卡发送和接受的包和字节数.因此萌生想法,写了一个.运行效果: 复制代码 代码如下: [root@74-82-173-217 ~]# ./net.sh Current Ip: inet addr:74.82.173.217 Bcast:74.82.173.223 Mask:255.255.255.224 Summry info: RX bytes:203692709 (194.2 MiB) TX bytes:93525930 (89.1

  • Linux下一些常用的Shell脚本整理

    如何计算当前目录下的文件数和目录数 # ls -l * |grep "^-"|wc -l ---- to count files # ls -l * |grep "^d"|wc -l ----- to count dir 如何只列子目录? ls -F | grep /$ 或者 alias sub = "ls -F | grep /$"(linux) ls -l | grep "^d" 或者 ls -lL | grep &quo

随机推荐