標籤:
安裝指令碼
#!/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.confmongodb_init=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|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/$mongodb_initchkconfig --add $mongodb_initchkconfig $mongodb_init onfi print_log "初始化配置完成."print_log "資料目錄為:$dbpath 記錄檔為:$mongodblog"print_log "配置目錄為:/usr/local/mongodb/conf"print_log "啟動指令碼為:/etc/init.d/$mongodb_init"} install
啟動指令碼
#!/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設定檔
dbpath=/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秒
mongodb安裝指令碼/啟動指令碼/設定檔