文档章节

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

王九龙
 王九龙
发布于 2016/01/29 14:24
字数 488
阅读 33
收藏 1
#!/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
博文 17
码字总数 16418
作品 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
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
大数据教程(3.2):Linux系统软件安装之自动化脚本

博主前面文章有介绍过软件的安装,可以帮助IT人员顺利的完成功能软件安装;但是,对于我们运维人员或者需要管理软件安装的项目经理来说,有些应用一次行需要搭建很多台相同的软件环境(如tom...

em_aaron
07/24
0
0
工具|FinalShell,必备终端利器

FinalShell,全平台支持,必备终端利器,国人开发,值得推荐。 FinalShell主页 主要特性 1.多平台支持Windows,Mac OS X,Linux 2.多标签,批量服务器管理. 3.支持登录Ssh和Windows远程桌面. 4...

王诗翔
09/19
0
0
Fastlane自动提交合并代码

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

钟环
04/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

web打印控件 LODOP的详细api

web打印控件 LODOP的详细api

wangxujun59
23分钟前
1
0
从一次小哥哥与小姐姐的转账开始, 浅谈分布式事务从理论到实践

分布式事务是个业界难题,在看分布式事务方案之前,先从单机数据库事务开始看起。 什么是事务 事务(Transaction)是数据库系统中一系列操作的一个逻辑单元,所有操作要么全部成功要么全部失...

中间件小哥
25分钟前
5
0
荣登Github日榜!微信最新开源MMKV

MMKV 开源当日即登Github Trending日榜,三日后荣登周榜。MMKV 在腾讯内部开源半年,得到公司内部团队的广泛应用和一致好评。 MMKV 是基于 mmap 内存映射的移动端通用 key-value 组件,底层序...

腾讯开源
35分钟前
2
0
前端取色工具:jcpicker

http://annystudio.com/software/colorpicker/#jcp-download

轻量级赤影
37分钟前
1
0
Swift - 将图片保存到相册

import Photos func loadImage(image:UIImage) { UIImageWriteToSavedPhotosAlbum(image, self, #selector(saveImage(image:didFinishSavingWithError:contextInfo:)), ni......

west_zll
43分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部