`
jzkangta
  • 浏览: 160524 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

mongodb启动脚本

阅读更多
#!/bin/sh
# chkconfig: 2345 93 18
# Edit by Sky
# description:MongoDB(MongoDB-1.8.1)

#mongodb 家目录
MONGODB_HOME=/data1/PRG/mongodb

#mongodb 启动命令
MONGODB_BIN=$MONGODB_HOME/bin/mongod

#mongodb 监听端口
MONGODB_PORT="5506"

#mongodb 日志文件
MONGODB_LOGPATH=$MONGODB_HOME/log/mogodb.log

#mongodb 日志级别 -v -vv -vvv -vvvv -vvvvv
MONGODB_LOG_LEVEL="-vvvvv"

#mongodb 日志追加模式 不启用则该参数为空
MONGODB_LOGAPPAND="--logappend"

#mongodb 守护进程模式运行 同时要设置logpath 不启用则该参数为空
MONGODB_DEAMON="--fork"

#mongodb PID文件
MONGODB_PID=$MONGODB_HOME/log/mogodb.pid

#mongodb 数据文件
MONGODB_DBPATH=$MONGODB_HOME/data

#mongodb maxConns
MONGODB_maxConns="2000"

#mongodb 连接登录限制 不启用则该参数为空
MONGODB_AUTH="--auth"
#MONGODB_AUTH=""

#mongodb 定期显示cpu的利用率和iowait 不启用则该参数为空
MONGODB_CPU="--cpu"

#mongodb 数据同步到disk的时间间隔 默认为60
MONGODB_SYNCDELAY="60"

#mongodb 角色 single-单机 || sets Replica set集群模式 || master ms模式 || slaver ms 模式
MONGODB_ROLE="single"

#mongodb 其它配置参数按需增加
MONGODB_OTHER_PARM="--directoryperdb"

#sets/ms oplogSize 配置 为了能使从库能支持超2小时的停机时间大少应设置为>=6G
MONGODB_oplogSize="6144"

#----------------Replica set

#sets 角色的时候设置
MONGODB_replSet="online"

#sets 额外配置
SETS_OTHER_PARA="--rest"

#--------------------------

#----------------Master - Slaver

#本机所属的角色  master slave 该属性暂不使用
MONGODB_MS_ROLE="slave"

#中间为M代表为应用到Master的配置 S代表slave的配置
MONGODB_M_oplogSize=$MONGODB_oplogSize

#指定Master机器地址和端口
MONGODB_S_SOURCE="127.0.0.1:5506"

#指定同步数据的时间间隔
MONGODB_S_slavedelay="3"

#Slave的额外配置 例如--only online 无则为空
MONGODB_S_PARM=""


#------------------------------




#打开文件数
SYSTEM_MAXFD=65535

#mongodb 用户
MONGODB_USER="mongodb"

#mongodb 用户组
MONGODB_GROUP="mongodb"

#mongodb 名字
MONGODB_NAME="mongodb"

. /etc/rc.d/init.d/functions

if [ ! -f $VARNISH_SBIN ]
then
        echo "$MONGODB_NAME startup: $MONGODB_BIN not exists! "
        exit
fi


start() {
        ulimit -HSn $SYSTEM_MAXFD
        ret=1
   if [[ "$MONGODB_ROLE" == "single" ]] ; then 
        su $MONGODB_USER -c "$MONGODB_BIN $MONGODB_DEAMON --port $MONGODB_PORT --logpath $MONGODB_LOGPATH $MONGODB_LOG_LEVEL $MONGODB_LOGAPPAND --pidfilepath $MONGODB_PID --dbpath $MONGODB_DBPATH --maxConns $MONGODB_maxConns $MONGODB_AUTH $MONGODB_CPU --syncdelay $MONGODB_SYNCDELAY $MONGODB_OTHER_PARM > /dev/null 2>&1  "               
        ret=$?
   elif [[ "$MONGODB_ROLE" == "sets" ]] ; then
        echo "Replica set Starting"
        su $MONGODB_USER -c "$MONGODB_BIN --replSet $MONGODB_replSet $MONGODB_DEAMON --port $MONGODB_PORT --logpath $MONGODB_LOGPATH $MONGODB_LOG_LEVEL $MONGODB_LOGAPPAND --pidfilepath $MONGODB_PID --dbpath $MONGODB_DBPATH --maxConns $MONGODB_maxConns $MONGODB_AUTH $MONGODB_CPU --syncdelay $MONGODB_SYNCDELAY --oplogSize $MONGODB_oplogSize $MONGODB_OTHER_PARM $SETS_OTHER_PARA > /dev/null 2>&1  "               
        ret=$?
   elif [[ "$MONGODB_ROLE" == "master" ]] ; then
        echo "Masteri Starting"
        su $MONGODB_USER -c "$MONGODB_BIN $MONGODB_DEAMON --port $MONGODB_PORT --master --logpath $MONGODB_LOGPATH $MONGODB_LOG_LEVEL $MONGODB_LOGAPPAND --pidfilepath $MONGODB_PID --dbpath $MONGODB_DBPATH --maxConns $MONGODB_maxConns $MONGODB_AUTH $MONGODB_CPU --syncdelay $MONGODB_SYNCDELAY --oplogSize $MONGODB_M_oplogSize $MONGODB_OTHER_PARM > /dev/null 2>&1"
        ret=$?
   elif [[ "$MONGODB_ROLE" == "slave" ]] ; then
        su $MONGODB_USER -c "$MONGODB_BIN $MONGODB_DEAMON --port $MONGODB_PORT --slave --source $MONGODB_S_SOURCE --slavedelay $MONGODB_S_slavedelay --logpath $MONGODB_LOGPATH $MONGODB_LOG_LEVEL $MONGODB_LOGAPPAND --pidfilepath $MONGODB_PID --dbpath $MONGODB_DBPATH --maxConns $MONGODB_maxConns $MONGODB_AUTH $MONGODB_CPU --syncdelay $MONGODB_SYNCDELAY $MONGODB_S_PARM $MONGODB_OTHER_PARM > /dev/null 2>&1"
        ret=$?
   else
        echo "Mongodb role Wrong"
   fi
        if [ $ret -eq 0 ]; then
                action $"Starting $MONGODB_NAME: " /bin/true
        else
                action $"Starting $MONGODB_NAME: " /bin/false
        fi
}


stop() {
        kill -2 `cat $MONGODB_PID`
        ret=$?
        if [ $ret -eq 0 ]; then
                action $"Stopping $MONGODB_NAME: " /bin/true
        else
                action $"Stopping $MONGODB_NAME: " /bin/false
        fi
}

restart() {
        stop
        start
}


init() {
    echo "MongoDB init ......" 
    LOGPATH_DIR=$(dirname $MONGODB_LOGPATH)
    if [[ -e $LOGPATH_DIR ]] ; then
         echo "$MONGODB_LOGPATH 中 $LOGPATH_DIR 已存在,跳过"
    else
         echo "创建 $MONGODB_LOGPATH 中的 $LOGPATH_DIR"
         mkdir -p $LOGPATH_DIR
         /bin/chown -R $MONGODB_USER:$MONGODB_GROUP $LOGPATH_DIR
    fi

    PID_DIR=$(dirname $MONGODB_PID)
    if [[ -e $PID_DIR ]] ; then
         echo "$MONGODB_PID 中 $PID_DIR 已存在,跳过"
    else
        echo "创建 $MONGODB_PID 中 $PID_DIR"
        mkdir -p $PID_DIR
        /bin/chown -R $MONGODB_USER:$MONGODB_GROUP  $PID_DIR
    fi
   
    if [[ -e $MONGODB_DBPATH ]] ; then
        echo "$MONGODB_DBPATH 已存在,跳过"
    else
        echo "是否自动创建$MONGODB_DBPATH(y|n)"
        read answer
        if [[ $answer == "y" ]] ; then
            mkdir -p $MONGODB_DBPATH 
            /bin/chown -R $MONGODB_USER:$MONGODB_GROUP $MONGODB_DBPATH
        fi
    fi
    
    echo "MongoDB init finished"
}

case "$1" in
        start)
                start
                ;;
        stop)
                stop
                ;;
        init)
                init
                ;;
        *)
                echo $"Usage: $0 {start|stop|init}"
                exit 1
esac


分享到:
评论

相关推荐

    解决Linux上MongoDB启动脚本错误---env: /etc/init.d/mongodb : no such file or directory

    然而,在使用过程中,有时会遇到启动脚本错误,如"env: /etc/init.d/mongodb : no such file or directory"。这个错误提示表明系统无法找到MongoDB的初始化脚本来启动服务。下面我们将深入探讨这个问题的原因以及...

    MongoDB安装包及一键启动脚本

    8. **设置开机启动**: 如果希望MongoDB在系统启动时自动运行,可以将上述启动脚本添加到系统服务管理工具(如Systemd或Init)的启动配置中。对于Systemd,可以创建一个`.service`文件并用`systemctl`管理。 9. **...

    mongodb集群部署脚本

    mongodb集群部署脚本,包括mongos启动、mongodb config启动,mongodb分片启动,mongodb副本集仲部署等脚本

    Mongodb数据库安装脚本

    接着是“mongo服务启动.bat”,这个脚本的作用是启动MongoDB服务。它可能包含以下步骤: 1. 使用`mongod.exe`可执行文件启动MongoDB服务,可能带有配置文件的参数。 2. 如果需要,脚本可能还会检查服务是否已经启动...

    Mongodb启动命令mongod参数说明.doc

    ### MongoDB启动命令mongod参数详解 #### 前言 MongoDB是一款开源的NoSQL数据库系统,以其高性能、高可用性和易扩展性而受到广泛欢迎。`mongod`是MongoDB的服务进程,它负责处理客户端请求并管理数据存储。本文将...

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

    此脚本包含了启动、停止、重启MongoDB的功能,并且设置了`chkconfig`的设置,使其可以添加到系统服务管理中。脚本中还包含了`ulimit -n 12000`,用于设置文件描述符的上限,因为MongoDB可能需要处理大量的并发连接。...

    Alist安装包+快速启动-停止脚本.zip

    3. **快速启动脚本**: 快速启动脚本是自动化执行特定任务的命令行脚本,这里用于启动 Alist 应用程序。这种脚本可以极大地简化用户操作,只需运行脚本即可启动服务,而无需手动寻找并执行应用程序。它可能使用批处理...

    MongoDB一键安装启动windows版本.rar

    压缩包中的Mongo版本是4.0,此工具功能为一键启动、关闭、进入命令行操作,在安装完成后即可直接使用,...MongoDB是64位的安装包,一键启动器是JDK1.8下开发,下载为压缩包,里面有安装包、启动器、安装及启动教程。

    mongodocker:使用Docker自动化MongoDB部署的脚本集

    这是使用Docker容器配置,部署和运行MongoDB的主要脚本。 这里,我们有几个功能可以简化部署过程中的某些操作,如下所示: setup_kernel() :根据MongoDB最佳实践设置一些内核参数 checknodes() :检查...

    MongoDB常用命令批处理

    在管理和操作MongoDB时,批处理脚本是一个高效的方法,特别是对于执行重复性的任务,如安装、启动、停止和配置服务。以下是根据提供的文件名解析出的MongoDB相关知识点: 1. **安装MongoDB服务**: - `install.bat...

    mongodb安装及自启动

    2. **Linux**:编辑`/etc/systemd/system/mongodb.service`文件,写入MongoDB的启动脚本,然后启用并启动服务。 ``` sudo nano /etc/systemd/system/mongodb.service sudo systemctl daemon-reload sudo ...

    mongodb linux 64位安装包

    7. **创建初始化脚本**:为了方便每次开机自动启动MongoDB,可以创建一个启动脚本,并将其添加到系统的启动服务中。例如,在Systemd系统中,可以创建`/etc/systemd/system/mongod.service`文件,并添加以下内容: `...

    Mongodb副本集群配置.docx

    在这里,我们创建了一个名为 `mongodb.sh` 的启动脚本,并在其中定义了启动、停止和重启 MongoDB 的命令。 #!/bin/sh start() { /home/mongodb/bin/mongod --config /home/mongodb/mongodb.conf } stop() { /home...

    mongodb性能优化.pptx

    ### MongoDB性能优化详解 #### 一、MongoDB性能优化概述 MongoDB作为一种广泛使用的NoSQL数据库,因其灵活性和高扩展性而备受青睐。然而,在实际应用过程中,由于数据量的增长和查询复杂性的增加,可能会遇到性能...

    mongodb离线安装

    - 执行启动脚本以启动MongoDB服务: ```bash $ /usr/local/mongodb-3.4.24/script/start_mongodb.sh ``` #### 五、卸载MongoDB - 如果需要卸载MongoDB,可以使用以下命令: ```bash $ sudo apt-get --purge ...

    mongodb_cluster_shell:mongodb集群部署脚本

    6. **脚本部署**:使用Shell脚本来自动化MongoDB集群的部署,可以大大提高效率,减少人为错误。脚本可能包含了创建用户、初始化复制集、设置分片、添加数据到分片等一系列步骤。 7. **环境变量与配置**:在部署过程...

    MongoDB Service Manager.bat

    win 上的MongoDB启动bat脚本。必须提前配置好MongoDB的服务。使用时,需要使用管理员权限运行(对服务操作的权限)

    centos7 mongoDB 一键部署

    该文件为centos7环境下,mongoDB3.4一键部署配置脚本。下载该文件,拖到服务器上,$ sh mongo.sh 执行该脚本就能自动化下载、安装、配置防火墙、远程访问、开机自启动等。

    MongoDB安装文档

    1. 打开`1.bat`,这可能是MongoDB的安装脚本,运行它来启动安装向导。 2. 接着运行`2.bat`,这可能是用于配置MongoDB服务的脚本。 3. 使用`3.bat`,这可能用于启动MongoDB服务。如果遇到问题,确保你的系统环境变量...

    MongoDB最新版3.4.10

    6. **配置持久化**:为了在重启后保持数据,需要配置一个持久化的启动脚本。编辑`/etc/init.d/mongodb`,添加启动参数,并将其添加到开机启动服务。 7. **防火墙配置**:如果你的系统启用了防火墙,记得打开MongoDB...

Global site tag (gtag.js) - Google Analytics