IT虾米网

nginx安装脚本

flyfish 2018年06月24日 程序员 1045 0
#!/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的脚本,我个人觉得写的不是很好。逻辑上不是很顺。只有待后面再重新改过了。

评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!