文档章节

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

王九龙
 王九龙
发布于 2016/01/29 14:24
字数 488
阅读 38
收藏 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
Fastlane自动提交合并代码

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

钟环
04/25
0
0
Linux系统的pxe自动化运维部署

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

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

没有更多内容

加载失败,请刷新页面

加载更多

正则表达式匹配不包含

^((?!xxx).)*$

安小乐
8分钟前
1
0
python Windows tkinter应用开发3 列出目录的所有文件

在本章中,我们将编写程序来执行此操作。 1)选择文件夹。 2)在UI的标签部分打印该文件夹中的所有文件名(带文件扩展名)。 首先,修改selectFile函数以打开文件夹。主文件如下: from tki...

python测试开发人工智能安全
10分钟前
1
0
使用Laya引擎开发微信小游戏(上)

  使用一个简单的游戏开发示例,由浅入深,介绍了如何用Laya引擎开发微信小游戏。      img      作者:马晓东,腾讯前端高级工程师。      微信小游戏的推出也快一年时间了,...

SEOwhywhy
14分钟前
1
0
react程序开发问题记录

1、webpack.config.dev.js文件的publicpath配置

teamlog
27分钟前
2
0
javascript 值转换为布尔值

任意javascript 的值都可以转换为布尔值。 特别是在 if() 等判断中使用的时候: 下面这些值会被转换为 false undefined , null , 0 , -0 , NaN , "" 空字符串 来自 JavaScript 权威指南 书籍...

之渊
30分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部