linux下mongodb启动脚本,mongodb安装脚本/启动脚本/配置文件

安装脚本

#!/bin/bash

#author: QingFeng

#qq: 530035210

#blog: http://my.oschina.net/pwd/blog

#自动安装mongodb和初始化配置

#缺省的配置如下

logdir=/data/log/shell          #日志路径

log=$logdir/shell.log            #日志文件

is_font=1                #终端是否打印日志: 1打印 0不打印

is_log=0                 #是否记录日志: 1记录 0不记录

random_time=$(date +%Y%m%d_%H%M%S)

PWD=`pwd`

mongodb_pakges="$PWD/mongodb-linux-x86_64-2.4.9.tgz"

mongodb_conf=$PWD/mongodb.conf

mongodb_init=$PWD/mongodb

datef(){

date "+%Y-%m-%d %H:%M:%S"

}

print_log(){

if [[ $is_log -eq 1  ]];then

[[ -d $logdir ]] || mkdir -p $logdir

echo "[ $(datef) ] $1" >> $log

fi

if [[ $is_font -eq 1  ]];then

echo -e "[ $(datef) ] $1"

fi

}

if [[  ! -f $mongodb_conf ]];then

print_log "mongodb配置文件不存在,退出:$mongodb_conf"

exit

else

. $mongodb_conf

fi

install(){

if [[  -d  /usr/local/mongodb  ]];then

print_log "mongodb已经安装,请不要再重复安装:/usr/local/mongodb"

exit

fi

print_log "解压文件中,请稍后..."

tar -zxf $mongodb_pakges  -C /usr/local/

mv /usr/local/$(echo $mongodb_pakges|awk -F'/' '{print $NF}'|sed "s/.tgz//g")   /usr/local/mongodb

if [[  -d  /usr/local/mongodb  ]];then

print_log "mongodb已经安装成功:/usr/local/mongodb"

else

print_log "mongodb已经安装失败:/usr/local/mongodb"

fi

if [[ -d $dbpath  ]];then

print_log "mongodb: 数据目录:$dbpath已经存在"

else

mkdir -p  $dbpath

fi

lastname=$(echo "$logpath" |awk -F'/' '{print $NF }')

mongodblog=$(echo $logpath | sed "s/$lastname//g")

if [[ -d $mongodblog  ]];then

print_log "mongodb: 日志目录:$mongodblog已经存在"

else

mkdir -p  $mongodblog

fi

if [[ !  -d /usr/local/mongodb/conf ]];then

mkdir -p  /usr/local/mongodb/conf

cp $mongodb_conf  /usr/local/mongodb/conf

fi

profile_num=$(cat /etc/profile |grep mongodb |wc -l)

if [[ $profile_num -eq 0  ]];then

echo "MONGODBPATH=/usr/local/mongodb/bin:\$PATH"  >> /etc/profile

echo "export MONGODBPATH" >> /etc/profile

fi

if [[ ! -f $mongodb_init   ]];then

print_log "mongodb: 启动脚本已经存在."

else

cp $mongodb_init  /etc/init.d/

chmod a+x /etc/init.d/mongodb

chkconfig --add mongodb

chkconfig mongodb on

fi

print_log "初始化配置完成."

print_log "数据目录为:$dbpath 日志文件为:$mongodblog"

print_log "配置目录为:/usr/local/mongodb/conf"

print_log "启动脚本为:/etc/init.d/$mongodb_init"

}

install

31c7979112cd3a76b984071fd37d5ff1.png

启动脚本

#!/bin/sh

# chkconfig: 2345 93 18

# author:QingFeng

# description:MongoDB(MongoDB-2.4.9)

#默认参数设置

#mongodb 家目录

MONGODB_HOME=/usr/local/mongodb

#mongodb 启动命令

MONGODB_BIN=$MONGODB_HOME/bin/mongod

#mongodb 配置文件

MONGODB_CONF=$MONGODB_HOME/conf/mongodb.conf

#mongodb PID

MONGODB_PID=/var/run/mongo.pid

#最大文件打开数量限制

SYSTEM_MAXFD=65535

#mongodb 名字

MONGODB_NAME="mongodb"

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

if [ ! -f $MONGODB_BIN ]

then

echo "$MONGODB_NAME startup: $MONGODB_BIN not exists! "

exit

fi

start(){

ulimit -HSn $SYSTEM_MAXFD

$MONGODB_BIN --config="$MONGODB_CONF"

ret=$?

if [ $ret -eq 0 ]; then

action $"Starting $MONGODB_NAME: " /bin/true

else

action $"Starting $MONGODB_NAME: " /bin/false

fi

}

stop(){

PID=$(ps aux |grep "$MONGODB_NAME" |grep "$MONGODB_CONF" |grep -v grep |wc -l)

if [[ $PID -eq 0  ]];then

action $"Stopping $MONGODB_NAME: " /bin/false

exit

fi

kill -HUP `cat $MONGODB_PID`

ret=$?

if [ $ret -eq 0 ]; then

action $"Stopping $MONGODB_NAME: " /bin/true

rm -f $MONGODB_PID

else

action $"Stopping $MONGODB_NAME: " /bin/false

fi

}

restart() {

stop

sleep 2

start

}

case "$1" in

start)

start

;;

stop)

stop

;;

status)

status $prog

;;

restart)

restart

;;

*)

echo $"Usage: $0 {start|stop|status|restart}"

esac

mongodb配置文件

dbpath=/data/db #数据目录存在位置

logpath=/data/logs/mongodb/mongodb.log #日志文件存放目录

port=27017  #端口

fork=true  #以守护程序的方式启用,即在后台运行

#auth=true  #开始认证

verbose=true

vvvv=true #启动verbose冗长信息,它的级别有 vv~vvvvv,v越多级别越高,在日志文件中记录的信息越详细.

maxConns=20000 #默认值:取决于系统(即的ulimit和文件描述符)限制。MongoDB中不会限制其自身的连接。

logappend=true #写日志的模式:设置为true为追加。

pidfilepath=/var/run/mongo.pid

#cpu=true #设置为true会强制mongodb每4s报告cpu利用率和io等待,把日志信息写到标准输出或日志文件。

directoryperdb=ture #数据目录存储模式,如果直接修改原来的数据会不见了

#nohttpinterface=false #28017 端口开启的服务。默认false,支持

#notablescan=false#不禁止表扫描操作

profile=0 #数据库分析等级设置,0 关 2 开。包括所有操作。 1 开。仅包括慢操作.

slowms=200 #记录profile分析的慢查询的时间,默认是100毫秒.

quiet=true

syncdelay=60 #刷写数据到日志的频率,通过fsync操作数据。默认60秒

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值