shell脚本一键部署jdk

#!/bin/bash
#配置jdk的安装目录 修改的地方1 脚本可以自己创建
currentTime=$(date '+%Y-%m-%d %H:%M:%S')
echo -e "请输入jdk的安装目录,不存在脚本自动创建,最后一个/不要写 /bigdata/install"
read jdkinstallpath

echo -e "请输入jdk的版本 例如 8"
read jdkversion

#创建ES安装的目录
if [ ! -d $jdkinstallpath ]; then
   mkdir -p $jdkinstallpath
fi 
if [ ! -d $jdkinstallpath ]; then
  echo "创建目录$jdkinstallpat失败!请检查目录是否有权限"
  exit
fi

#解压tar包
currentdir=$(cd $(dirname $0); pwd)
ls | grep "jdk-$jdkversion.*[gz]$"
if [ $? -ne 0 ]; then
   #当前目录没有es的压缩包
   echo "在$currentdir下没有发现jdk的压缩包,请自行上传!"
   exit
else
   #解压
   tar -zxvf $currentdir/$(ls | grep "jdk-$jdkversion.*[gz]$") -C $jdkinstallpath
fi

jdkbanben=`ls $jdkinstallpath| grep "jdk*$jdkversion*"`

#PATH设置
#末行插入
echo "">>~/.bash_profile
echo '#java $currentTime'>>~/.bash_profile
echo "export JAVA_HOME=$jdkinstallpath/$jdkbanben">>~/.bash_profile
echo 'export PATH=$PATH:$JAVA_HOME/bin'>>~/.bash_profile
source ~/.bash_profile

java -version
if [ $? -eq 0 ]; then
  echo 'JDK配置完成'
else
  echo '安装失败,请重新尝试或手动安装'
fi


#分发hadoop安装文件
echo "以下输入的节点必须做免密登录"
echo  "请输入所有的节点,按照空格分开,当前机器不用输入(当前机器是cdh01) 例如 cdh02 cdh03 cdh04 cdh05" 
read allnodes
user=`whoami`
array=(`echo $allnodes | tr ' ' ' '` )
for allnode in ${array[@]}
do
 echo ======= $allnode  =======
 ssh $allnode "echo ''>>~/.bash_profile"
 ssh $allnode "echo '#jdk $currentTime'>>~/.bash_profile"
 ssh $allnode "echo 'export JAVA_HOME=$jdkinstallpath/$jdkbanben'>>~/.bash_profile"
 ssh $allnode 'echo "export PATH=\$PATH:\$JAVA_HOME/bin">>~/.bash_profile'
 ssh $allnode "source ~/.bash_profile"
 ssh $allnode "rm -rf $jdkinstallpath/$jdkbanben"
 ssh $allnode "mkdir -p $jdkinstallpath/$jdkbanben"
 scp -r $jdkinstallpath/$jdkbanben/* ${user}@$allnode:$jdkinstallpath/$jdkbanben
 echo ======= $allnode 复制完成  =======
done

for allnode in ${array[@]}
do
 echo ======= 在 $allnode 手动执行 source ~/.bash_profile 在通过 java  -version 查看是否安装成功 =======
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值