MongoDB安装脚本/启动脚本/配置文件

xg48 10年前

  安装脚本

#!/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)  mongodb_pakges="mongodb-linux-x86_64-2.4.9.tgz"   mongodb_conf=mongodb.conf  mongodb_init=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|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_init  chkconfig --add $mongodb_init  chkconfig $mongodb_init on  fi     print_log "初始化配置完成."  print_log "数据目录为:$dbpath 日志文件为:$mongodblog"  print_log "配置目录为:/usr/local/mongodb/conf"  print_log "启动脚本为:/etc/init.d/$mongodb_init"      }     install

MongoDB安装脚本/启动脚本/配置文件

启动脚本

#!/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秒

来自:http://my.oschina.net/pwd/blog/398751