首页 > 代码库 > 【MongDB运维】MongDB自动安装脚本--rpm包安装版
【MongDB运维】MongDB自动安装脚本--rpm包安装版
#!/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} >/dev/null 2>&1 ; echo $?`"
mongo_10gen_server_status="`ls ${mongo_10gen_server_rpm} >/dev/null 2>&1 ; echo $?`"
if [ "${mongo_10gen_status}" -ne 0 ];then
echo "Error: mongo-10gen doesn‘t exists in $software_dir/."
exit
elif [ "${mongo_10gen_server_status}" -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
# 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} >/dev/null 2>&1 ; echo $?`"
mongo_10gen_server_status="`ls ${mongo_10gen_server_rpm} >/dev/null 2>&1 ; echo $?`"
if [ "${mongo_10gen_status}" -ne 0 ];then
echo "Error: mongo-10gen doesn‘t exists in $software_dir/."
exit
elif [ "${mongo_10gen_server_status}" -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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。