#ubuntu
file=mongodb-linux-x86_64-ubuntu1804-4.4.4.tgz  
url=https://fastdl.mongodb.org/linux/$file  
#centos
file=mongodb-linux-x86_64-rhel70-7.0.12.tgz
url=https://fastdl.mongodb.org/linux/$file 

db_dir=/data/db  
install_dir=/usr/local  
port=27017  
  
color () {  
    RES_COL=60  
    MOVE_TO_COL="echo -en \\033[${RES_COL}G"  
    SETCOLOR_SUCCESS="echo -en \\033[1;32m"  
    SETCOLOR_FAILURE="echo -en \\033[1;31m"  
    SETCOLOR_WARNING="echo -en \\033[1;33m"  
    SETCOLOR_NORMAL="echo -en \E[0m"  
    echo -n "$2" && $MOVE_TO_COL  
    echo -n "["  
    if [ $1 = "success" -o $1 = "0" ] ;then  
        ${SETCOLOR_SUCCESS}  
        echo -n " OK "  
    elif [ $1 = "failure" -o $1 = "1" ] ;then  
        ${SETCOLOR_FAILURE}  
        echo -n "FAILED"  
    else  
        ${SETCOLOR_WARNING}  
        echo -n "WARNING"  
    fi  
    ${SETCOLOR_NORMAL}  
    echo -n "]"  
    echo  
}  
  
os_type () {  
    awk -F'[ "]' '/^NAME/{print $2}' /etc/os-release  
}  
  
check () {  
    [ -e $db_dir -o -e $install_dir/mongodb ] && { color 1 "MongoDB 数据库已安装"; exit; }  
    if [ `os_type` = "CentOS" ];then  
        rpm -q curl  &> /dev/null || yum install -y -q curl  
    elif [ `os_type` = "Ubuntu" ];then  
        dpkg -l curl &> /dev/null || apt -y install curl  
    else  
        color 1 "不支持当前操作系统"  
        exit  
    fi  
}  
  
file_prepare () {  
    if [ ! -e $file ];then  
        curl -O $url || { color 1 "MongoDB 数据库文件下载失败"; exit; }  
    fi  
}  
  
install_mongodb () {  
    tar xf $file -C $install_dir  
    mkdir -p $db_dir  
    ln -s $install_dir/mongodb-linux-x86_64-* $install_dir/mongodb  
    echo "PATH=$install_dir/mongodb/bin/:$PATH" > /etc/profile.d/mongodb.sh  
    . /etc/profile.d/mongodb.sh  
    mongod --dbpath $db_dir --bind_ip_all --port $port --logpath $db_dir/mongod.log --fork  
    [ $? -eq 0 ] && color 0 "MongoDB 数据库安装成功!" || color 1 "MongoDB 数据库安装失败!"  
}  
  
check  
file_prepare  
install_mongodb