Mongodb 安装脚本(附服务器自启动)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mongodb 安装脚本(附服务器自启动)相关的知识,希望对你有一定的参考价值。
一、目的
为简化Mongodb快速安装部署,并添加至服务启动项,开机自启动。
二、脚本
2.1 github地址
github链接
2.2 脚本内容
#!/bin/bash
#mail:[email protected]
#function:auto install mongodb
[ $(id -u) != "0" ] && echo "Error: You must be root to run this script" && exit 1
[ $(rpm -q centos-release|cut -d- -f3) != "6" ] && echo "Please use centos6.x" && exit 1
clear
echo "##########################################"
echo "# Auto Install mongodb for centos6.x ##"
echo "# Press Ctrl + C to cancel ##"
echo "# Any key to continue ##"
echo "##########################################"
echo "(1) Install Mongodb-3.2"
echo "(2) Install Mongodb-3.4"
echo "(3) Install Mongodb-3.6"
echo "(4) EXIT"
read -p "Please input your choice:" NUM
case $NUM in
1)
mongodb_url="https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.20.tgz"
software_version="mongodb-3.2"
;;
2)
mongodb_url="https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.10.tgz"
software_version="mongodb-3.4"
;;
3)
mongodb_url="https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.6.5.tgz"
software_version="mongodb-3.6"
;;
4)
echo -e " 33[41;37m You choice channel! 33[0m" && exit 0
;;
*)
echo -e " 33[41;37m Input Error! Place input{1|2|3|4} 33[0m" && exit 1
;;
esac
clear
softdir="/software"
installdir="/usr/local"
sys_init() {
clear
echo -e " 33[42;5m initialization system... 33[0m"
sleep 2
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
/etc/init.d/iptables status >/dev/null
[ $? -eq 0 ] && iptables -I INPUT -p tcp --dport 27017 -j ACCEPT
[ $? -eq 0 ] && /etc/init.d/iptables save
yum -y install wget >/dev/null
setenforce 0
}
download_software() {
clear
echo -e " 33[42;5m download software... 33[0m"
sleep 2
if [ ! -d ${softdir} ];then
mkdir ${softdir} && cd ${softdir}
else
cd ${softdir}
fi
for software_url in ${mongodb_url}
do
wget -c ${software_url}
if [ $? -eq 0 ];then
for software in `ls`
do
tar zxf $software -C $installdir
done
fi
done
}
install_software() {
clear
echo -e " 33[42;5m install server... 33[0m"
sleep 2
mongodbdir=$(ls ${installdir}|grep "mongodb-linux-x86_64")
ln -s ${installdir}/${mongodbdir} ${installdir}/mongodb
mkdir ${installdir}/mongodb/{conf,mongoData,mongoLog}
touch ${installdir}/mongodb/mongoLog/mongodb.log
echo "export PATH=$PATH:${installdir}/mongodb/bin">/etc/profile.d/mongodb.sh
source /etc/profile.d/mongodb.sh
cat >${installdir}/mongodb/conf/mongodb.conf <<EOF
dbpath=${installdir}/mongodb/mongoData
logpath=${installdir}/mongodb/mongoLog/mongodb.log
logappend=true
journal=true
quiet=true
port=27017
pidfilepath=/var/run/mongod.pid
#replSet =RS
maxConns=20000
#httpinterface=true
fork=true
#auth=true
EOF
}
start_server() {
clear
echo -e " 33[42;5m configuration server... 33[0m"
cat >/etc/init.d/mongodb-server<<EOF
#!/bin/bash
#auth:kaliarch
# mongodb Startup script for mongodb processes
#
# chkconfig: - 90 10
# description: Mongodb provides fast memory based storage.
# processname: Mongodb
. /etc/rc.d/init.d/functions
bash_dir="/usr/local/mongodb"
mongod="${bash_dir}/bin/mongod"
config="${bash_dir}/conf/mongodb.conf"
getpid=$(pidof mongod)
lockfile="${bash_dir}/mongodb.lock"
pidfile="/var/run/mongod.pid"
#user=nobody
start() {
action $"Starting $prog: " /bin/true
# Starting mongodb on port 27017 as deamon and user nobody
$mongod -f ${config} >/dev/null
RETVAL=$?
[ $RETVAL = 0 ] && touch ${lockfile}
return $RETVAL
}
stop() {
if test "x${getpid}" != x; then
action $"Stopping $prog " /bin/true
killall mongod
fi
RETVAL=$?
[ $RETVAL = 0 ] && rm -rf ${lockfile} ${pidfile}
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status -p ${pidfile} ${mongod}
RETVAL=$?
;;
restart)
stop
start
;;
*)
echo $"Usage: $0 {start|status|stop|restart}"
exit 1
esac
exit ${RETVAL}
EOF
cd /
chmod +x /etc/init.d/mongodb-server
chkconfig mongodb-server on
service mongodb-server start
}
check_server() {
clear
echo -e " 33[42;5m check server status... 33[0m"
server_port=$(netstat -lntup|grep mongod|wc -l)
server_proc=$(ps -ef |grep mongodb.conf|grep -v grep|wc -l)
if [ ${server_port} -gt 0 -a ${server_port} -gt 0 ];then
echo -e " 33[42;37m mongodb-server install successful! 33[0m"
echo -e " 33[42;37m version:${software_version} 33[0m"
echo -e " 33[42;37m bashpath:${installdir}/mongodb 33[0m"
else
echo -e " 33[42;37m mongodb install error! 33[0m"
fi
}
main() {
sys_init
download_software
install_software
start_server
check_server
}
main
三、测试
以上是关于Mongodb 安装脚本(附服务器自启动)的主要内容,如果未能解决你的问题,请参考以下文章
centos 6.5怎么设置mongodb 3.0.6 开机自启动
ios - Heroku 和 MongoDb 上的自定义解析服务器错误 3080:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项