mongodb安装脚本/启动脚本/配置文件 发表于 2015-04-10 | 分类于 Shell相关 | | 阅读次数 | 字数统计 892 | 阅读时长 4 安装脚本 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495#!/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.confmongodb_init=$PWD/mongodbdatef(){date "+%Y-%m-%d %H:%M:%S"} print_log(){if [[ $is_log -eq 1 ]];then[[ -d $logdir ]] || mkdir -p $logdirecho "[ $(datef) ] $1" >> $logfiif [[ $is_font -eq 1 ]];thenecho -e "[ $(datef) ] $1"fi}if [[ ! -f $mongodb_conf ]];thenprint_log "mongodb配置文件不存在,退出:$mongodb_conf"exitelse. $mongodb_conffi install(){if [[ -d /usr/local/mongodb ]];thenprint_log "mongodb已经安装,请不要再重复安装:/usr/local/mongodb"exitfiprint_log "解压文件中,请稍后..."tar -zxf $mongodb_pakges -C /usr/local/mv /usr/local/$(echo $mongodb_pakges|awk -F'/' '{print $NF}'|sed "s/.tgz//g") /usr/local/mongodbif [[ -d /usr/local/mongodb ]];thenprint_log "mongodb已经安装成功:/usr/local/mongodb"elseprint_log "mongodb已经安装失败:/usr/local/mongodb"fiif [[ -d $dbpath ]];thenprint_log "mongodb: 数据目录:$dbpath已经存在"elsemkdir -p $dbpath fi lastname=$(echo "$logpath" |awk -F'/' '{print $NF }')mongodblog=$(echo $logpath | sed "s/$lastname//g")if [[ -d $mongodblog ]];thenprint_log "mongodb: 日志目录:$mongodblog已经存在"elsemkdir -p $mongodblogfi if [[ ! -d /usr/local/mongodb/conf ]];thenmkdir -p /usr/local/mongodb/confcp $mongodb_conf /usr/local/mongodb/conffiprofile_num=$(cat /etc/profile |grep mongodb |wc -l)if [[ $profile_num -eq 0 ]];thenecho "MONGODBPATH=/usr/local/mongodb/bin:\$PATH" >> /etc/profileecho "export MONGODBPATH" >> /etc/profilefiif [[ ! -f $mongodb_init ]];thenprint_log "mongodb: 启动脚本已经存在."elsecp $mongodb_init /etc/init.d/chmod a+x /etc/init.d/mongodbchkconfig --add mongodbchkconfig mongodb onfi print_log "初始化配置完成."print_log "数据目录为:$dbpath 日志文件为:$mongodblog"print_log "配置目录为:/usr/local/mongodb/conf"print_log "启动脚本为:/etc/init.d/$mongodb_init"} install 启动脚本 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384#!/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 PIDMONGODB_PID=/var/run/mongo.pid#最大文件打开数量限制SYSTEM_MAXFD=65535#mongodb 名字 MONGODB_NAME="mongodb". /etc/rc.d/init.d/functionsif [ ! -f $MONGODB_BIN ]then echo "$MONGODB_NAME startup: $MONGODB_BIN not exists! " exitfistart(){ 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配置文件 123456789101112131415161718dbpath=/data/db #数据目录存在位置logpath=/data/logs/mongodb/mongodb.log #日志文件存放目录port=27017 #端口fork=true #以守护程序的方式启用,即在后台运行#auth=true #开始认证verbose=truevvvv=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秒 坚持原创技术分享,您的支持将鼓励我继续创作! 赏 微信打赏