18 根据给定的配置文件启动相应的mongo服务

原创 2016年08月29日 23:05:57

前言

这里的需求来自于前一篇描述的mongo集群的搭建, 主要是shard吧, 两台机器, 一台启动一个replicationSet, 另外一台启动一个router结点, 两个config结点
然后 最初的设想是为了直接一个脚本启动replicationSet集群, 后来 拓展了一下 对于config结点的启动, router结点的启动也使用了脚本[在本次介绍的脚本上面做了一定程度根据场景进行适配的修改]

问题描述

目录结构如下[略去了一些不重要的文件/文件夹 ]
这里写图片描述

编写一个脚本, 传入参数, 参数为需要启动的mongo服务[这里以基本的数据节点mongod服务为例]的配置文件, 脚本要做的事情 就是启动对应的mongo服务, 可以传入多个参数, 多个配置文件, 启动多个mongo服务

思路

1 首先 实现这个脚本 第一步需要做的事情, 就是 了解如何通过给定的配置文件启动一个mongo服务
$mongoDir/bin/mongod –config $confFile

2 然后 获取给定的脚本所在路径也是其中的一个难点
下面是我曾经尝试过的一些方式
第一个 : 看起来是正确的, 但是 需要明确的一点是当前work diretory未必是脚本所在的文件夹
第二个 : 这个就更不好找问题了, 问题在于”$0”得到的是执行当前脚本使用的路径[可能是相对, 也可能是绝对], 如果是在shardConf目录使用”./start.sh”的话, 则会导致脚本后面获取”mongoDir”不统一, 因此 存在问题
第三个 : 来自于网络, 请详见参考, 这个 是能够获取到我们所需要的目标了[给定的执行的脚本的绝对路径]

# 1. got current script's parent dir by 'pwd', not good incase of cur execute cmd not in script's parent dir
curDir=`pwd`
# 2. got current script's parent dir by '$0', some time got relative path
scriptPath=$0
curDir=${scriptPath%/*}
# 3. got current script's parent dir 
curDir=$(cd `dirname $0`; pwd)

3 剩下的则 都是一些shell相关的基础知识了,, 因此 这里不多描述, 参考连接中会放设计的相关shell的基础知识的连接

参考脚本

startup.sh

#! /bin/bash
# -------------------------------------------------------
source /usr/local/ProgramFiles/shells/Utils.sh

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

curDir=$(cd `dirname $0`; pwd)
# echo $curDir

mongoDir=${curDir%/*}
echoC "MONGO_HOME : $mongoDir" $green

for conf in $@
do
        echoC "start mongoInstance with :  '$mongoDir/bin/mongod --shardsvr --config $curDir/$conf'" $green
        $mongoDir/bin/mongod --shardsvr --config $curDir/$conf
done

+_+ 简单吧,,

Utils.sh

#! /bin/bash
# print content with color '$color'
black=30
red=31
green=32
yellow=33
blue=34
purple=35
skyBlue=36
white=37
function echoC() {
        echo -e "\033[$2m$1\033[0m"
}


## to be continued ....

效果截图

这里写图片描述

总结

小工具, 扯扯淡, 熟悉了一下shell而已

参考 :
Linux shll中的$符号 – 读取命令行参数 –2016.08.26
http://blog.csdn.net/arkblue/article/details/7801744
Linux shell脚本的字符串截取
http://blog.csdn.net/gumanren/article/details/5601544
shell脚本如何获取当前路径并保存到变量
http://blog.csdn.net/yitianljt/article/details/7615538
在Linux中让echo命令显示带颜色的字
http://onlyzq.blog.51cto.com/1228/546459
linux shell自定义函数(定义、返回值、变量作用域)介绍
http://www.jb51.net/article/33899.htm
Linux Shell编程变量赋值和引用
http://blog.sina.com.cn/s/blog_a0e5bf2c0100yeqv.html
在Shell中使用函数文件,引入文件
http://justcoding.iteye.com/blog/2010786
http://zhidao.baidu.com/question/2138162712611361108.html?qbl=relate_question_1&word=%D4%DAShell%D6%D0%CA%B9%D3%C3%BA%AF%CA%FD%CE%C4%BC%FE%2C%D2%FD%C8%EB%CE%C4%BC%FE
Shell if else语句
http://c.biancheng.net/cpp/view/7005.html [注意空格”if [ var01 op var02 ]”]
http://www.jb51.net/article/56553.htm
Shell脚本中计算字符串长度的5种方法
http://www.jb51.net/article/51348.htm
[转]linux shell 获取当前正在执行脚本的绝对路径
http://www.cnblogs.com/FlyFive/p/3640267.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

MongoDB 通过配置文件启动

前面我们了解了mongod启动命令需指定一些参数启动服务,本节我们通过配置文件的方式配置这些参数加载配置。 ./bin/mongod --config ./conf/mongodb.conf(或./b...
  • tianwei7518
  • tianwei7518
  • 2015年03月15日 00:26
  • 8434

mongodb分片部署说明

对于使用mongodb进行分片部署本身非常方便,下面将自己最近分片部署的过程记录下来: 分片:shard1,shard2,shard3 配置:configsvr1,configsvr2,configs...
  • qq315zh
  • qq315zh
  • 2016年07月07日 16:22
  • 1607

MongoDB安装、配置、启动(MAC)

1.前往官网下载MongoDB压缩包 2.将下载好的压缩包解压,将解压出的文件夹下的内容全部复制到新的路径下。 cp -r mongodb-osx-x86_64-3.0.4 /usr/loca...
  • u010311313
  • u010311313
  • 2015年07月19日 01:42
  • 9621

Linux各位服务配置文件的相应目录位置

启动引导程序配置文件LILO /etc/lilo.conf GRUB /boot/grub/menu.lst 系统启动文件核脚本主启动控制文件 /etc/inittab SysV启动脚本的位置 ...
  • Vae023
  • Vae023
  • 2015年04月01日 15:26
  • 449

mongo shell启动配置文件.mongorc.js(一)

当启动的时候,mongo检查用户HOME目录下的一个JavaScript文件.mongorc.js。如果找到,mongo在首次显示提示信息前解析.mongorc.js的内容。如果你使用shell执行一...
  • guhuang5026
  • guhuang5026
  • 2017年04月09日 16:11
  • 342

mongo shell启动配置文件.mongorc.js(二)

如果你的主目录下有个.mongorc.js文件,那么当你启动shell时他就会自动运行。使用它可以初始化任何你经常使用的helper方法和你不想意外操作的删除方法。 比如,你不想使用默认的d...
  • cengou4302
  • cengou4302
  • 2017年04月09日 16:12
  • 801

mongo shell启动配置文件.mongorc.js(四)

~/.mongorc.js文件描述如下: #mongorc.js   =============== 我的 mongorc.js 文件. 提供:   - `pretty(...
  • cengou4302
  • cengou4302
  • 2017年04月09日 16:14
  • 793

JBOSS_5.0.1数据库配置文件及相应的JDBC

  • 2010年12月30日 23:21
  • 2.84MB
  • 下载

mongo+spring配置文件

applicationContext.xml
  • qq_32523587
  • qq_32523587
  • 2018年01月12日 09:12
  • 44

mongo配置文件

下面描述的配置信息在MongoDB3.4版本中可用。只介绍常用的配置,不常用的以后遇到再添加。配置文件在使用mongod和mongos命令启动的时候,你可以使用这个配置文件。这个配置文件包含的内容和m...
  • maosijunzi
  • maosijunzi
  • 2017年08月07日 17:44
  • 394
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:18 根据给定的配置文件启动相应的mongo服务
举报原因:
原因补充:

(最多只允许输入30个字)