mongodb开机启动shell脚本

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值