源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Shell脚本实现在Linux系统中自动安装JDK

  • 时间:2022-07-25 01:49 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Shell脚本实现在Linux系统中自动安装JDK
A:本脚本运行的机器,Linux B:待安装JDK的机器, Linux 首先在脚本运行的机器A上确定可以ssh无密码登录到待安装jdk的机器B上,然后就可以在A上运行本脚本:
[u]复制代码[/u] 代码如下:
$ ./install-jdk.sh B的IP 
or:
[u]复制代码[/u] 代码如下:
$ ./install-jdk.sh "B的IP" "JDK的URI"
就可以在机器B上安装JDK。jdk使用的tar包需要用户自己设定DEFAULT_JDK_SRC=?,保证可以wget得到即可。下面是全部脚本内容:
[u]复制代码[/u] 代码如下:
#!/bin/bash  #  # @file  #   install-jdk.sh  #  # @date  #   2013-12-19  #  # @author  #   cheungmine  #  # @version  #   0.0.1pre  #  # @usage:  #   ./install-jdk.sh 192.168.122.206  #  ################################################################################  . common.sh    #***********************************************************  # install_jdk  #   install jdk on machine: /usr/local/lib  #  # Parameters:  #   machine - root@ipaddr  #   jdkUri  - uri for fetching tarball  #  # Example:  #  #   install_jdk root@192.168.122.206 ftp://vm-ftp/pub/tarball/jdk-7u67-linux-x64.tar.gz  #  #***********************************************************  . common.sh    # YOU MIGHT CHANGE BELOW LINE TO GET YOUR JDK TARBALL:  DEFAULT_JDK_SRC="ftp://vm-ftp/pub/tarball/jdk-7u67-linux-x64.tar.gz"    # DO NOT CHANGE BELOW TWO LINES:  INSTALL_DIR="/usr/local/lib/java"  LOCAL_DIR="./.tmp"    function install_jdk() {      echo -e "<INFO> install jdk on machine: $1"        local DEST_LOGIN=$1      local JDK_URI=$2      local TAR=$(basename $JDK_URI)        echo -e "<INFO> jdk: '$JDK_URI'"        wget -c $JDK_URI -P $LOCAL_DIR -O $LOCAL_DIR/$TAR        $(is_empty_dir "$LOCAL_DIR/jdk_untar")      local ret=$?        case $ret in      $DIR_NOT_EXISTED)          mkdir -p $LOCAL_DIR/jdk_untar          ;;      $DIR_IS_EMPTY)          ;;      $DIR_NOT_EMPTY)          rm -rf $LOCAL_DIR/jdk_untar/*          ;;      *)          exit $ERR_FATAL_ERROR          ;;      esac        # untar to jdk_untar      tar -zxf $LOCAL_DIR/$TAR -C $LOCAL_DIR/jdk_untar        $(is_empty_dir "$LOCAL_DIR/jdk_untar")      local ret=$?        if [ "$ret" -eq "$DIR_NOT_EMPTY" ]; then          local jdk_home=`ls $LOCAL_DIR/jdk_untar 2>/dev/null`          echo $jdk_home      else          exit $ERR_FATAL_ERROR      fi        echo -e "<INFO> create folder on: $DEST_LOGIN:$INSTALL_DIR"      local ret=`ssh $DEST_LOGIN "mkdir $INSTALL_DIR"`        echo -e "<INFO> copy $jdk_home/ to: $DEST_LOGIN:$INSTALL_DIR/"      local ret=`scp -r $LOCAL_DIR/jdk_untar/$jdk_home $DEST_LOGIN:$INSTALL_DIR`        # remove local tar      rm -rf $LOCAL_DIR/jdk_untar        local DEST_JAVA_HOME=$INSTALL_DIR/$jdk_home        echo -e "<TODO> remove old settings for install_jdk in /etc/profile"        echo -e "<INFO> set /etc/profile: JAVA_HOME=$DEST_JAVA_HOME"      local ret=`ssh $DEST_LOGIN "echo '' >> /etc/profile"`      local ret=`ssh $DEST_LOGIN "echo '#!{{install_jdk@hgdb.net==>' >> /etc/profile"`        local ret=`ssh $DEST_LOGIN "echo 'export JAVA_HOME=$DEST_JAVA_HOME' >> /etc/profile"`      local ret=`ssh $DEST_LOGIN "echo 'export CLASSPATH=.:\\$JAVA_HOME/lib/tools.jar:\\$JAVA_HOME/lib/dt.jar' >> /etc/profile"`      local ret=`ssh $DEST_LOGIN "echo 'export PATH=\\$JAVA_HOME/bin:\\$JAVA_HOME/jre/bin:\\$PATH' >> /etc/profile"`        local ret=`ssh $DEST_LOGIN "echo '#!<==install_jdk@hgdb.net}}'>> /etc/profile"`        local ret=`ssh $DEST_LOGIN ". /etc/profile"`  }      function uninstall_jdk() {      echo -e "<TODO> uninstall jdk from: $1"  }    #=======================================================================  # ---- main() ----  if [ -n $1 ]; then      DEST_IP=$1      JDK_SRC=$DEFAULT_JDK_SRC        if [ $# == 2 ]; then          JDK_SRC=$2      fi        echo -e "<INFO> install jdk on '$DEST_IP', jdk: '$JDK_SRC'"        install_jdk "root@$DEST_IP" "$JDK_SRC"  fi 
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部