最近在搭建Hadoop集群,很多软件都是需要重复安装的,比如jdk,mysql等,机器少的情况下还可以接受,机器多的情况下就不太好了,费时费力,在这种场景下我想到了用shell脚本来自动安装
代码我粘贴到下面了
说明:我用的是jdk1.8的安装包jdk-8u144-linux-x64.tar.gz,解压后的文件夹名称是jdk1.8.0_144
#!/bin/bash
#设置本地变量
jdk_name="jdk-8u144-linux-x64.tar.gz"
jdk_path="/usr/java/"
dir=`dirname $0`
#设置系统的环境变量
#注意这里的jdk1.8.0_144是jdk-8u144-linux-x64.tar.gz解压完后的目录
JAVA_HOME=${
jdk_path}jdk1.8.0_144
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:HOME/bin
#若目录存在,则先删除再创建
if test -e $jdk_path; then
rm -rf $jdk_path
fi
#创建多级目录
mkdir -p $jdk_path
cd $dir
#将jdk的安装包复制到/usr/java/目录下并解压,解压完成后删除安装包
cp $jdk_name $jdk_path
cd $jdk_path
tar -zxvf $jdk_name
rm -rf $jdk_name
#用追加输出的方式向/etc/profile文件末尾追加JAVA环境变量的配置
echo "export JAVA_HOME=$JAVA_HOME">>/etc/profile
echo "export CLASSPATH=$CLASSPATH">>/etc/profile
echo "export PATH=$PATH">>/etc/profile
#最关键的一步,让环境变量生效
source /etc/profile
运行:最后采用后台运行的方式,加上打印日志,便于排查错误```javascript
nohup sh xxx.sh >>auto_jdk.log &
###### 安装成功后,直接在任何路径下,输入java javac java -version进行验证即可
如有问题可以在下方评论中说明,我再改进