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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值