標籤:mongodb shell
一、目的
為簡化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 1clearecho "##########################################"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:" NUMcase $NUM in1) 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 "\033[41;37m You choice channel! \033[0m" && exit 0;;*) echo -e "\033[41;37m Input Error! Place input{1|2|3|4} \033[0m" && exit 1;;esacclearsoftdir="/software"installdir="/usr/local"sys_init() {clearecho -e "\033[42;5m initialization system... \033[0m"sleep 2sed -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 saveyum -y install wget >/dev/nullsetenforce 0}download_software() {clearecho -e "\033[42;5m download software... \033[0m"sleep 2if [ ! -d ${softdir} ];then mkdir ${softdir} && cd ${softdir}else cd ${softdir}fifor 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 fidone}install_software() {clearecho -e "\033[42;5m install server... \033[0m"sleep 2mongodbdir=$(ls ${installdir}|grep "mongodb-linux-x86_64")ln -s ${installdir}/${mongodbdir} ${installdir}/mongodbmkdir ${installdir}/mongodb/{conf,mongoData,mongoLog}touch ${installdir}/mongodb/mongoLog/mongodb.logecho "export PATH=\$PATH:${installdir}/mongodb/bin">/etc/profile.d/mongodb.shsource /etc/profile.d/mongodb.shcat >${installdir}/mongodb/conf/mongodb.conf <<EOFdbpath=${installdir}/mongodb/mongoDatalogpath=${installdir}/mongodb/mongoLog/mongodb.loglogappend=truejournal=truequiet=trueport=27017pidfilepath=/var/run/mongod.pid#replSet =RSmaxConns=20000#httpinterface=truefork=true#auth=trueEOF}start_server() {clearecho -e "\033[42;5m configuration server... \033[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/functionsbash_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=nobodystart() { 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 1esacexit \${RETVAL}EOFcd /chmod +x /etc/init.d/mongodb-serverchkconfig mongodb-server onservice mongodb-server start}check_server() {clearecho -e "\033[42;5m check server status... \033[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 ];thenecho -e "\033[42;37m mongodb-server install successful! \033[0m"echo -e "\033[42;37m version:${software_version} \033[0m"echo -e "\033[42;37m bashpath:${installdir}/mongodb \033[0m"elseecho -e "\033[42;37m mongodb install error! \033[0m"fi}main() {sys_initdownload_softwareinstall_softwarestart_servercheck_server}main
三、測試
Mongodb 安裝指令碼(附伺服器自啟動)