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)
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
啟動腳本
#!/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
本文由用戶 xg48 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!