文档章节

nginx+tomcat+resin+jdk一键自动化安装脚本(5--nginx安装脚本)

王九龙
 王九龙
发布于 2016/01/29 14:52
字数 566
阅读 120
收藏 12
#!/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的脚本,我个人觉得写的不是很好。逻辑上不是很顺。只有待后面再重新改过了。

© 著作权归作者所有

共有 人打赏支持
王九龙
粉丝 7
博文 17
码字总数 16418
作品 0
广州
大型项目linux自动化版本发布脚本(shell)之tomcat、nginx服务脚本

最近,又临近博主所负责的一个大型项目的发版了。之前有提到过,该项目涉及到30-40台服务器的发版。且项目客户规定发版需在晚上10-11点左右开始进行,这里博主不得不说每次发布最后都是眼花缭...

em_aaron
08/01
0
0
nginx+tomcat+resin+jdk一键自动化安装脚本(1--父shell安装脚本)

思路:用户执行父shell,父shell匹配用户输入的信息,相应地去执行子shell。 话不多说,直接看shell。 ├── auto_install.sh ----父shell├── install_jdk.sh ----子shell--jdk安装 ├─...

王九龙
2016/01/29
72
0
PHP 7.0.0 一键安装脚本

OSCM (Operation System Configure Management) 是我创建的一个自动化运维脚本的项目,旨在提供敏捷运维。传统自动化运维工具例如 ansible, saltstack,puppet 不够灵活,配置繁琐,很多限...

neo-chen
2015/12/03
515
4
LNMT一键安装包 beta 0.2 版本正式发布

LNMT一键安装包是一个用Linux Shell编写的可以为CentOS/RedHat VPS(VDS)或独立主机安装LNMT(Nginx、MySQL、JRE、Tomcat)生产环境的Shell程序。同时提供一些实用的辅助脚本如:可以帮助完成N...

蓝翔妓工
2015/02/27
2.9K
8
shell-菜单自动化软件部署

打印选择菜单,按照选择一键安装不同的Web服务。 示例菜单: [root@oldboy scripts]# shmenu.sh 1.[install lamp] 2.[install lnmp] 3.[exit] pls input the num you want: 要求: 1、当用户...

wangweihang
2017/05/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java Lock接口分析之ReentantReadWriteLock

ReentantReadWriteLock读写锁,在读线程多余写线程的并发环境中能体现出优异的性能,相比于synchronized与ReentrantLock这种独占式锁的模型,ReentantReadWriteLock采用独占式写锁与共享式读...

我爱春天的毛毛雨
30分钟前
1
0
EFK (Fluentd ElasticSearch Kibana) 采集nginx日志

本文描述如何通过FEK组合集中化nginx的访问日志。本人更喜欢按顺序来命名,所以使用FEK而不是EFK. 首先在nginx服务器上执行以下操作. 安装ruby http://blog.csdn.net/chenhaifeng2016/artic...

xiaomin0322
31分钟前
1
0
一键下载:将知乎专栏导出成电子书

老是有同学问,学了 Python 基础后不知道可以做点什么来提高。今天就再用个小例子,给大家讲讲,通过 Python 和爬虫,可以完成怎样的小工具。 在知乎上,你一定关注了一些不错的专栏(比如 ...

crossin
40分钟前
2
0
synchronized 之 对象锁 和 类锁

一、synchronized(object) 如果object没有被加锁,则获取object的锁;如果object已经被加锁则等待object的锁被释放。 二、需要加锁的情景 多线程共享同一资源会引起线程安全的情况下,才需要...

MyOldTime
42分钟前
7
0
tomcat 单机/多机 部署多应用

一.单机部署多应用: 1.在 linux 下解压安装两个 tomcat:tomcat1, tomcat2; 2.修改 /etc/profile, 增加 tomcat 环境变量: path 中加上 重新加载配置文件 source /etc/profile 3.修改 tomc...

imbiao
53分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部