mongodb开机启动脚本
1.创建脚本文件
vim /etc/init.d/mongodb
2.mongodb开机启动shell脚本代码
#!/bin/bash
# author:wudd
# mongodb操作脚本
name=mongod
route_name=mongos
path_bin=/httx/run/mongodb/bin/
path=/httx/run/mongodb/
path_conf=/httx/run/mongodb/conf/
shard_configs=(config.conf rep1.conf rep2.conf rep3.conf)
route_config=mongos.conf
case "$1" in
start)
if [ ! -n "$2" ];then
echo "请指定服务启动!"
else
start $2
fi
;;
stop)
if [ ! -n "$2" ];then
echo "请指定服务停止!"
else
stop $2
fi
;;
restart)
if [ ! -n "$2" ];then
echo "请指定服务重启!"
else
restart $2
fi
;;
restartShard)
restartShard
;;
restartRoute)
restartRoute
;;
esac
# 判断数据内是否含有指定元素
function isContainElement(){
resultCode=0
for var in ${shard_configs[@]};
do
if [ "$1" == "$var" ];then
resultCode=1
else
resultCode=0
fi
done
return $resultCode
}
# 判断指定文件是否存在
function isExistFile(){
file=${path_conf}$1
if [ -f "$file" ];then
return 1
else
return 0
fi
}
# 启动指定服务
function start(){
isExistFile $1
if [ $? -eq 0 ];then
echo "当前服务器不含指定的【$1】配置服务!"
else
echo "----------------------------- 启动【$1】服务开始 -----------------------------"
# 判断是否为路由服务配置文件,如果是,则启动文件为mongos
run_file_name=${name}
if [ "$1" == "${route_config}" ];then
run_file_name=${route_name}
else
run_file_name=${name}
fi
echo "启动命令为:${path_bin}$run_file_name -f ${path_conf}$1"
${path_bin}$run_file_name -f ${path_conf}$1
if [ $? -eq 0 ];then
echo "【$1】启动成功"
else
echo "【$1】启动失败"
fi
echo "----------------------------- 启动【$1】服务结束 -----------------------------"
fi
}
# 停止启动指定服务
function stop(){
isExistFile $1
if [ $? -eq 0 ];then
echo "当前服务器不含指定的【$1】配置服务!"
else
echo "----------------------------- 停止【$1】服务开始 -----------------------------"
server_pid=`ps -ef | grep $1 |grep -v grep | awk '{print $2}'`
if [ "$server_pid" != "" ];then
echo "杀死【$1】进程:$server_pid"
kill -9 $server_pid
if [ $? -eq 0 ];then
echo "【$1】停止成功"
else
echo "【$1】停止失败"
fi
else
echo "【$1】进程已经停止"
fi
echo "----------------------------- 停止【$1】服务结束 -----------------------------"
fi
}
# 重新启动指定服务
function restart(){
isExistFile $1
if [ $? -eq 0 ];then
echo "当前服务器不含指定的【$1】配置服务!"
else
echo "----------------------------- 重启【$1】服务开始 -----------------------------"
server_pid=`ps -ef | grep $1 |grep -v grep | awk '{print $2}'`
if [ "$server_pid" != "" ];then
echo "杀死【$1】进程:$server_pid"
kill -9 $server_pid
if [ $? -eq 0 ];then
echo "【$1】停止成功"
else
echo "【$1】停止失败"
fi
else
echo "【$1】进程已经停止"
fi
# 判断是否为路由服务配置文件,如果是,则启动文件为mongos
run_file_name=${name}
if [ "$1" == "${route_config}" ];then
run_file_name=${route_name}
else
run_file_name=${name}
fi
echo "启动命令为:${path_bin}$run_file_name -f ${path_conf}$1"
${path_bin}$run_file_name -f ${path_conf}$1
if [ $? -eq 0 ];then
echo "【$1】启动成功"
else
echo "【$1】启动失败"
fi
echo "----------------------------- 重启【$1】服务结束 -----------------------------"
fi
}
# 重启配置服务
function restartShard(){
echo "----------------------------- 重启配置与分片服务start -----------------------------"
for var in ${shard_configs[@]};
do
restart $var
done
echo "----------------------------- 重启配置与分片服务end -----------------------------"
}
# 重启路由服务
function restartRoute(){
echo "----------------------------- 重启路由服务start -----------------------------"
restart ${route_config}
echo "----------------------------- 重启路由服务start -----------------------------"
}
3.加入系统服务和开机自启
cd /etc/init.d/
#设置执行权限
chmod a+x mongodb
#加入系统服务
chkconfig --add mongodb
#开机服务自启
chkconfig mongodb on
#重启系统生效
shutdown -r
4.mongodb开启、停止、重启操作
#开启
service mongodb start
#停止
service mongodb stop
#重启
service mongodb restart
#重启分片
service mongodb restartShard
#重启路由服务
service mongodb restartRoute
集群启动脚本
#!/bin/bash
#sudo mkdir -p /data/{db1,db2,db3,db30,db31,db32,configdb}
##--Setup Replaction Server--
sudo /usr/local/mongodb/bin/mongod --fork --dbpath=/data/db1 --logpath=/var/log/db1.log --logappend --journal --replSet inner --port 27020 --shardsvr --nohttpinterface
sudo /usr/local/mongodb/bin/mongod --fork --dbpath=/data/db2 --logpath=/var/log/db2.log --logappend --journal --replSet inner --port 27021 --shardsvr --nohttpinterface
sudo /usr/local/mongodb/bin/mongod --fork --dbpath=/data/db3 --logpath=/var/log/db3.log --logappend --journal --replSet inner --port 27022 --shardsvr --nohttpinterface
##--SetUp Replaction Server--
sudo /usr/local/mongodb/bin/mongod --fork --dbpath=/data/db30 --logpath=/var/log/db30.log --logappend --journal --replSet jack --port 27030 --shardsvr --nohttpinterface
sudo /usr/local/mongodb/bin/mongod --fork --dbpath=/data/db31 --logpath=/var/log/db31.log --logappend --journal --replSet jack --port 27031 --shardsvr --nohttpinterface
sudo /usr/local/mongodb/bin/mongod --fork --dbpath=/data/db32 --logpath=/var/log/db32.log --logappend --journal --replSet jack --port 27032 --shardsvr --nohttpinterface
##--Sharding Configure config_server mongos--
sudo /usr/local/mongodb/bin/mongod --configsvr
sleep 20
sudo /usr/local/mongodb/bin/mongos --fork --logappend --logpath=/var/log/dbconf.log --configdb 127.0.0.1:27019