文档章节

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

王九龙
 王九龙
发布于 2016/01/29 14:24
字数 488
阅读 32
收藏 1
点赞 1
评论 0
#!/bin/bash
# this shell will be installed jdk*.tar.gz
#author: wangjiulong

#匹配后jdk版本信息,会存在tmp_jdk.txt文件中
jdk_pkg=`cat $tmp_jdk`
jdk_tar=`cat $tmp_jdk | awk -F.tar.gz '{print $1}'`
jdk_num=`cat $tmp_jdk | awk -F.tar.gz '{print $1}' | grep -F- '{print $2}'`

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
}

#检查缓存文件tmp_jdk.txt是否存在,不存在shell退出。
#check tmp file 
check_tmp_file(){

        cd $pwd_dir
        if [ ! -f $tmp_jdk ];then
                print_log "缓存文件不存在,shell即将退出"
                exit
        else
                check_install_jdk
        fi
}


check_install_jdk(){
        jdk_path=/data/java
        java_version=`java -version > $tmp_jdk_version 2>&1;echo $?`
        java_home=`ls $jdk_path > /dev/null 2>&1 ; echo $?`
        java_value=`cat $java_version | grep "$jdk_num"`

        #首先,判断是否存在jdk路径,不存在,直接安装jdk了。如果存在,接下来判断jdk的版本。如果查询不到jdk的
        #版本,那么开始安装jdk。而如果查询到jdk的版本,提示用户,当前系统已经安装了jdk。
        case $java_home in
                0)
                case $java_value in
                        0)
                                print_log "jdk已经安装"
                        ;;
                        *)
                                print_log "当前系统不存在$jdk_tmp版jdk,即将安装"
                                cd $tar_dir
                                tar -zxvf $jdk_pkg -C $jdk_path
                                cd $jdk_path
                                 tar -zxvf $jdk_pkg -C $jdk_path
                                cd $jdk_path
                                unlink jdk
                                ln -s $jdk_tar jdk
                                chown -R root.root $jdk_tar jdk
                                Java_home_num=`cat /etc/profile | grep "JAVA_HOME" | wc -l`
                                if [ $Java_home_num -eq 0  ];then
                                        echo "export JAVA_HOME=/data/java/jdk" >> /etc/profile
                                        echo 'PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
                                fi
                                print_log "source"
                        ;;
                esac
                ;;
                *)
                        print_log "当前系统不存在$jdk_tar目录,也未安装jdk。接来下开始安装$jdk_pkg"
                        mkdir -p $jdk_path
                        cd $tar_dir
                        tar -zxvf $jdk_pkg -C $jdk_path
                        cd $jdk_path
                        ln -s $jdk_tar jdk
                        chown -R root.root $jdk_tar jdk
                        echo "export JAVA_HOME=/data/java/jdk" >> /etc/profile
                        echo 'PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
                ;;
        esac
}

check_tmp_file

tmp_jdk.txt这个文本,记录了用户确认安装jdk的版本信息。




















© 著作权归作者所有

共有 人打赏支持
王九龙
粉丝 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

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

软件自动化部署脚本

2017-11-16 20:19:53 1:设计思路:   (1)软件自动化部署脚本,即在一台虚拟机运行脚本,就将其他虚拟机上面的软件安装好了;   (2)而前提是自己的机器搭建好了yum网络版仓库(本地y...

别叫小伙 ⋅ 2017/11/16 ⋅ 0

Fastlane自动提交合并代码

效果: 平常在公司用git提交代码好几行命令,敲都敲吐了,用sourceTree工具切换提交也点吐了.就随手用fastlane写了一个自动化脚本,在自己分支一键提交后将代码合并到远程仓库再切回自己分支. 执...

钟环 ⋅ 04/25 ⋅ 0

Linux系统的pxe自动化运维部署

一、配置虚拟机自动安装 1、根据yum源配置博客:http://13132323.blog.51cto.com/13122323/1951991 首先安装自动应答脚本制作工具yum install system-config-kickstart –y,然后关闭主机的防...

飞天喜欢yu ⋅ 2017/07/29 ⋅ 0

使用ruby的fpm模块实现对二进制MySQL的RPM包制作,实现一键安装

随着互联网的发展,一些互联网企业,甚至于传统企业的服务器也是越来越多。将面临的挑战其中之一就是自动化运维管理。假设我们需要自动化部署很多的应用,而这些应用又很复杂,过程多,需要源...

蓝色_风暴 ⋅ 2017/08/09 ⋅ 0

公有云镜像模版的创建

系统层级模版约束 序号 分类 约束和规定 1 操作系统分区 分区比例保持现有生产分区比例不变 总分区默认初始大小 100G 【/: 5G】 【/data:60G】 【/home:8G】 【/var:8G】 【/usr: 16G】...

运维技术 ⋅ 2014/04/08 ⋅ 0

使用ansible自动化部署nfs+rsync+sersync+web01自动化挂载

老男孩教育教学核心思想6重:重目标、重思路、重方法、重实践、重习惯、重总结 学无止境,老男孩教育成就你人生的起点! 联系方式: 目 录 第1章 ctrl+1. 1 1.1 ctrl+2. 1 1.1.1 ctrl+3. 1 第...

segastar660 ⋅ 2017/03/22 ⋅ 0

一键PHP/JAVA安装工具--OneinStack

OneinStack – 一键PHP/JAVA安装工具 OneinStack包含以下组合: lnmp(Linux + Nginx+ MySQL+ PHP) lamp(Linux + Apache+ MySQL+ PHP) lnmpa(Linux + Nginx+ MySQL+ PHP+ Apache):Ngi......

lj2007331 ⋅ 2015/08/04 ⋅ 0

Hadoop快速部署工具--EasyHadoop

EasyHadoop 是一个Hadoop一键安装系统,方便大家更容易安装部署Hadoop软件。 EasyHadoop 由前暴风影音数据团队修湘调研,向磊编写,以GPL协议进行开源 开放此管理部署系统方便大家安装使用,以此...

Slaytanic ⋅ 2012/02/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

NFS介绍 NFS服务端安装配置 NFS配置选项

NFS介绍 NFS是Network File System的缩写;这个文件系统是基于网路层面,通过网络层面实现数据同步 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导...

lyy549745 ⋅ 24分钟前 ⋅ 0

Spring AOP 源码分析 - 筛选合适的通知器

1.简介 从本篇文章开始,我将会对 Spring AOP 部分的源码进行分析。本文是 Spring AOP 源码分析系列文章的第二篇,本文主要分析 Spring AOP 是如何为目标 bean 筛选出合适的通知器(Advisor...

java高级架构牛人 ⋅ 47分钟前 ⋅ 0

HTML-标签手册

标签 描述 <!--...--> 定义注释。 <!DOCTYPE> 定义文档类型。 <a> 定义锚。超链接 <abbr> 定义缩写。 <acronym> 定义只取首字母的缩写。 <address> 定义文档作者或拥有者的联系信息。 <apple......

ZHAO_JH ⋅ 48分钟前 ⋅ 0

SylixOS在t_main中使用硬浮点方法

问题描述 在某些使用场景中,应用程序不使用动态加载的方式执行,而是跟随BSP在 t_main 线程中启动,此时应用代码是跟随 BSP 进行编译的。由于 BSP 默认使用软浮点,所以会导致应用代码中的浮...

zhywxyy ⋅ 56分钟前 ⋅ 0

JsBridge原理分析

看了这个Github代码 https://github.com/lzyzsd/JsBridge,想起N年前比较火的Hybrid方案,想看看现在跨平台调用实现有什么新的实现方式。代码看下来之后发现确实有点独特之处,这里先把核心的...

Kingguary ⋅ 今天 ⋅ 0

Intellij IDEA神器常用技巧五-真正常用快捷键(收藏级)

如果你觉得前面几篇博文太啰嗦,下面是博主多年使用Intellij IDEA真正常用快捷键,建议收藏!!! sout,System.out.println()快捷键 fori,for循环快捷键 psvm,main方法快捷键 Alt+Home,导...

Mkeeper ⋅ 今天 ⋅ 0

Java 静态代码分析工具简要分析与使用

本文首先介绍了静态代码分析的基本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBugs,PMD,Jtest),最后从功能、特性等方面对它们进行分析和比较,...

Oo若离oO ⋅ 今天 ⋅ 0

SpringBoot自动配置小记

spring-boot项目的特色就在于它的自动配置,自动配置就是开箱即用的本源。 不过支持一个子项目的自动配置,往往比较复杂,无论是sping自己的项目,还是第三方的,都是如此。刚接触会有点乱乱...

大_于 ⋅ 今天 ⋅ 0

React jsx 中写更优雅、直观的条件运算符

在这篇文字中我学到了很多知识,同时结合工作中的一些经验也在思考一些东西。比如条件运算符 Conditional Operator condition ? expr_if_true : expr_if_false 在jsx中书写条件语句我们经常都...

开源中国最帅没有之一 ⋅ 今天 ⋅ 0

vim编辑模式与命令模式

5.5 进入编辑模式 从编辑模式返回一般模式“Esc” 5.6 vim命令模式 命令 :“nohl”=no high light 无高亮,取消内容中高亮标记 "x":保存退出,和wq的区别是,当进入一个文件未进行编辑时,使...

弓正 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部