nginx安装脚本

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用
#!/bin/bash
# this shell will be installed jdk*.tar.gz
#author: wangjiulong

#ROOT=$(pwd)
#SCRIPTS=$ROOT/scripts
#PKGS=$ROOT/pkgs
#NGINX_ROOT=/usr/local/nginx
#服务器如果已经安装了nginx,那么就不重新安装;没有,就安装.

nginx_path=/usr/local/nginx

#检查要安装的nginx版本,记录保存
nginx_pkg=`cat $tmp_nginx_pkgtar`
cat $tmp_nginx_pkgtar | awk -F.tar.gz '{print $1}' | awk -F- '{print $2}' > $tmp_nginx_pkgtar_version 2>&1
nginx_tar=`cat $tmp_nginx_pkgtar | awk -F.tar.gz '{print $1}'`
nginx_tar_version=`cat $tmp_nginx_pkgtar_version`

#检查本机中的nginx版本,记录保存
nginx_local=$nginx_path/sbin/nginx -v > $tmp_nginx_local  2>&1
cat $tmp_nginx_local | awk -F[\/] '{print $2}' > $tmp_nginx_local_version 2>&1
nginx_local_version=`cat $tmp_nginx_local_version`

datef() {
        date "+%Y/%m/%d %H:%M";
}

#custom log
print_log(){
        if [[ -d $log_dir  ]];then
                echo "[$(datef)]  $1" >> $log
        else
                echo "[$(datef)] log path does not exist,created first" >>$log
                mkdir -p $log_dir
                echo "[$(datef)]  $1" >> $log
        fi
}


#检查nginx是否安装  
#Check whether the installation nginx
check_nginx(){

        diff_value=`diff $tmp_nginx_local_version $tmp_nginx_pkgtar_version ;echo $?`
        nginx_value=`ls $nginx_path > /dev/null 2>&1 ;echo $?`

        case $nginx_value in
                0)
                case $diff_value in
                        0)
                                print_log "本机已经安装了nginx,nginx的版本是$nginx_local_version,程序即将退出。"
                                exit
                        ;;
                        1)
                                print_log "本机已经安装了nginx,但与要安装的nginx的版本不一致。"
                                exit
                        ;;
                        *)
                                print_log "程序存在异常,即将退出。异常可能是因为不存在文件/目录导致的,请检查!!!"
                        ;;

                esac
                        print_log "本机已经安装了nginx,nginx的版本是$nginx_local_version,程序即将退出。"
                        exit
                ;;
                *)
                        print_log "本机不存在nginx目录,程序即将安装nginx,nginx版本是$nginx_tar_version"
                        install_nginx
                ;;
        esac
}


#install nginx
install_nginx(){

        cd $tar_dir
        tar -zxf $nginx_pkg
        cd $nginx_tar
        ./configure --prefix=/usr/local/nginx --with-http_ssl_module  --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre --without-select_module --without-poll_module && make && make install


        if [[ $? != "0" ]];then
                print_log "[$(datef)] install_nginx(): install error!"
                exit
        fi

        cp -fv $file_dir/nginx /etc/init.d/nginx
        cp -fv $file_dir/nginx.conf $nginx_path/conf/
        chkconfig --add nginx

        add_user
        #Test config file exits
}

add_user(){
        print_log "**************************begin change www user mode* ****************** "
        if ! grep "^www" /etc/passwd
        then
                groupadd www
                useradd -g www -d /data/www www
        fi
        print_log "*************************end changed *********************************** "
        finished
}

finished(){
        #install complete
        print_log "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
        print_log "+ [$(datef)] congratulagions!++++++++++++++++++++++++++++"
        print_log "+ [$(datef)] don't forget to modify configuration files++"
        print_log "+ [$(datef)] based on your system resources like mem size"
        print_log "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
}

print_log "执行check_nginx函数,开始准备安装nginx"
check_nginx

哎、、、nginx的脚本,我个人觉得写的不是很好。逻辑上不是很顺。只有待后面再重新改过了。

标签: ssl 服务器 脚本

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:Java 中常用缓存Cache机制的实现

下一篇:统计时间分布脚本(mysql)