【MongDB运维】MongDB自动安装脚本--rpm包安装版

本文介绍如何使用bash脚本自动安装MongoDB RPM包,并进行相应的配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash
# Version:  v1.0 by Jason_Asia on 2014-05-14
# Desc:     auto install mongodb rpm packages

software_dir=/home/dba/software/mongodb

##{{{ check mongodb install status

mongod_thread_status="`netstat -nltp | grep mongod | wc -l`"

if [ ${mongod_thread_status} -gt 0 ];then
    echo "Critical: mongod is running."
    exit
fi

[ `which mongod ` ] && echo "Critical: mongodb has been installed on this server." && exit

##}}}


##{{{ install mongodb rpms
function rpm_install(){
    echo "Info: start to install mongo-10gen and mongo-10gen-server..."

    # check rpms
    cd $software_dir
    
    mongo_10gen_rpm="mongo-10gen-[0-9]*mongodb*x86_64.rpm"
    mongo_10gen_server_rpm="mongo-10gen-server-[0-9]*mongodb*x86_64.rpm"
    # examples:
    #   mongo-10gen-server-2.4.10-mongodb_1.x86_64.rpm
    #   mongo-10gen-2.4.10-mongodb_1.x86_64.rpm
    
    mongo_10gen_status="`ls ${mongo_10gen_rpm} ; echo $?`"
    mongo_10gen_server_status="`ls ${mongo_10gen_server_rpm} ; echo $?`"
    
    if [ "`echo ${mongo_10gen_status} | awk '{print $NF}'`" -ne 0 ];then
        echo "Error: mongo-10gen doesn't exists in $software_dir/."
        exit
    elif [ "`echo ${mongo_10gen_server_status} | awk '{print $NF}'`" -ne 0 ];then
        echo "Error: mongo-10gen-server doesn't exists in $software_dir/."
        exit
    else
        echo "Info: mongo-10gen and mongo-10gen-server are ok."
    fi
    
    # install mongodb
    
    rpm -ivh ${software_dir}/${mongo_10gen_rpm}
    mongo_10gen_install_status="echo $?"
    if [ ${mongo_10gen_install_status} -ne 0 ];then
        echo "Error: mongo-10gen install failed."
    fi
    
    rpm -ivh ${software_dir}/${mongo_10gen_server_rpm}
    mongo_10gen_server_install_status="echo $?"
    if [ ${mongo_10gen_server_install_status} -ne 0 ];then
        echo "Error: mongo-10gen-server install failed."
    fi
    
    echo "Info: mongodb install status:"
    rpm -aq |grep mongo
    
    echo "Info: finish installing mongodb."
    echo ""
}    

##}}}

##{{{ set mongodb configuration file
function configure(){
    echo "Info: start to configure mongodb..."

    # add user mongd
    useradd mongod    

    # make mongodb directories
    mkdir -p /home/mongodb
    chown -R mongod.mongod /home/mongodb

    mongod_conf=/etc/mongod.conf
    
    # check /etc/mongod.conf
    if [ ! -f ${mongod_conf} ];then
        echo "Error: file ${mongod_conf} doesn't."
        exit
    fi
    
    
    # set configurations
    echo "Info: set ${mongod_conf}."

    sed -i '2 amaster = true' ${mongod_conf}

    sed -i '2 aport = 27017' ${mongod_conf}

    sed -i '2 aauth = true' ${mongod_conf}

    sed -i 's/^pidfilepath\(.*\)/#pidfilepath\1/g' ${mongod_conf}
    sed -i '2 apidfilepath=/home/mongodb/mongod.pid' ${mongod_conf}

    sed -i 's/^dbpath\(.*\)/#dbpath\1/g' ${mongod_conf}
    sed -i '2 adbpath=/home/mongodb'  ${mongod_conf}
    
    sed -i 's/^logpath\(.*\)/#logpath\1/g' ${mongod_conf}
    sed -i '2 alogpath=/home/mongodb/mongod.log' ${mongod_conf}

    egrep '^dbpath|^logpath|^pidfilepath|^port' ${mongod_conf}
    
    # set mongod service
    echo "Info: set mogod service autostart."
    chkconfig --level 2345 mongod on
    chkconfig --list | grep  mongod

    echo "Info: finish configuring mongodb."
    echo ""

}
##}}}


rpm_install
configure

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值