文档章节

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

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

© 著作权归作者所有

共有 人打赏支持
王九龙
粉丝 7
博文 15
码字总数 16418
作品 0
广州
nginx+tomcat+resin+jdk一键自动化安装脚本(1--父shell安装脚本)

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

王九龙 ⋅ 2016/01/29 ⋅ 0

PHP 7.0.0 一键安装脚本

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

neo-chen ⋅ 2015/12/03 ⋅ 4

LNMT一键安装包 beta 0.2 版本正式发布

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

蓝翔妓工 ⋅ 2015/02/27 ⋅ 8

Ubuntu下快速安装Nginx

前言 Linux操作系统有很多不同的发行版本,像Ubuntu、CentOS、RedHat等等,有些是收费的,有些是免费的。接触过Linux的人多少对这些信息有些了解。虽然版本不同,但大部分系统命令还是一致的...

chace0120 ⋅ 2016/06/30 ⋅ 0

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

《Linux云计算从入门到精通》系列实战笔记全放送

为了方便Linux云计算爱好者的学习查看,马哥Linx云计算团队特别整理了《Linux云计算从入门到精通》年度重磅大放送,囊括了整个学习过程的学习精华,内容全部由马哥Linux云计算学员撰写,欢迎...

898009427 ⋅ 2017/11/21 ⋅ 0

Nginx配合keepalived实现LVS负载均衡--生产环境实际案例

前言:由于服务器资源有限,keepalived未配主主、只配了一个VIP。本人在香港机房生产环境部署的实际案例,从2013年9月开始运行,服务从未挂过。由于涉及到生产环境,系统展示就不贴出来了。希...

极速前行 ⋅ 2015/04/15 ⋅ 0

ltnmp 2.0.4 发布,一键安装包

ltnmp2.0.4发布,该版本更新了nginx1.9.4,php-5.6.12,推荐更新! 更新内容: 更新composer到最新版,添加完成后添加可执行权限 增加数据库innodb存储引擎默认采用独立表存储数据 去掉添加虚...

技安 ⋅ 2015/08/20 ⋅ 16

LNMP安装过程

LNMP一键安装包是什么? LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat/Fedora、Debian/Ubuntu/Raspbian/Deepin VPS或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL...

OneTODO ⋅ 2016/10/29 ⋅ 0

FPM定制RPM包实践

1.1 快速部署方案 问题:当领导给你 100 台已经安装好系统的服务器,然后让优化,让你提出一个快速部署方案。 解答:   1.tar 打包 先编译安装 打包--》分发--》解包(比如 mysql 打包后直接...

侯召顺 ⋅ 2017/10/30 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

懒惰根本就不存在

简评:芝加哥大学心理学教授,懒惰根本就不存在。(本文表面讲行为心理学实则讲教育) 金句:以好奇而不是判断来回应一个人的无效行为,是非常有帮助的。 本文「我」代表原作者 E Price。 自...

极光推送 ⋅ 31分钟前 ⋅ 0

Excel提取单元格中最后一个“.”后面的数据

java.lang.String ----- String =TRIM((MID(SUBSTITUTE(B2,".",REPT(" ",99)),(LEN(B2)-LEN(SUBSTITUTE(B2,".","")))*99,99)))...

klog ⋅ 33分钟前 ⋅ 0

mac远程桌面

下载安装remote-desktop-mac Mac beta 客户端 mac通过远程桌面访问windows服务器。

亚林瓜子 ⋅ 37分钟前 ⋅ 0

firrtl

动手---sbt(2)之后,再回头看 chisel第一个实验,根据 https://github.com/freechipsproject/firrtl 发现firrtl没有执行sbt assembly命令,重新执行这个命令,结果成功。如下图: joe@joe-As...

whoisliang ⋅ 41分钟前 ⋅ 0

NIO

一、通道(Channel):用于源节点与目标节点的连接。在 Java NIO 中负责缓冲区中数据的传输。Channel 本身不存储数据,因此需要配合缓冲区进行传输。 二、通道的主要实现类 java.nio.channel...

stars永恒 ⋅ 42分钟前 ⋅ 0

Android悬浮窗的实现

0. 前言   现在很多应用都使用到悬浮窗,例如微信在视频的时候,点击Home键,视频小窗口仍然会在屏幕上显示。这个功能在很多情况下都非常有用。那么今天我们就来实现一下Android悬浮窗,以...

猴亮屏 ⋅ 42分钟前 ⋅ 0

日志采集中的关键技术分析

概述 日志从最初面向人类演变到现在的面向机器发生了巨大的变化。最初的日志主要的消费者是软件工程师,他们通过读取日志来排查问题,如今,大量机器日夜处理日志数据以生成可读性的报告以此...

tqyin ⋅ 43分钟前 ⋅ 0

使用Navicat将数据导出为text文本 然后再导入

将数据导出为text文本效率很高 1. 准备工作 1.1 准备表结构 1.2 目标库 执行生成表结构sql 2.将表数据导出为text文本 生成的text文本 3. 目标库 导入text 4.效果...

Lucky_Me ⋅ 49分钟前 ⋅ 0

IntelliJ IDEA 乱码解决方案 (项目代码、控制台等)

文章介绍了idea下,项目乱码、控制台乱码及运行tomcat控制台乱码的解决方案,文章链接:https://www.cnblogs.com/vhua/p/idea_1.html

Funcy1122 ⋅ 52分钟前 ⋅ 0

IDEA使用sonarLint

一、IDEA如何安装SonarLint插件 1.打开 Idea 2.点击【File】 3.点击【Settings】 4.点击【Plugins】 5.在搜索栏中输入“sonarlint”关键字 6.点击【Install】进行安装 7.重启Idea 二、IDEA如...

开源中国成都区源花 ⋅ 57分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部