子曰:“吾十有五而志于学,三十而立,四十而不惑,五十而知天命,六十而耳顺,七十而从心所欲,不逾矩。”
> 解决的问题
对于多台机器配置jdk的情况,又不想一台一台的配置(浪费时间)衍生而出的脚本
实现了:一次执行,完成N台配置
> 思路方案
- jdk安装文件放在app目录,app目录和脚本在同级目录
- 解压当前jdk, 并重命名文件目录为jdk8(方便管理)
- 循环遍历服务器ip地址
- 开始拷贝jdk8到指定ip服务器
- 添加环境变量
- 返回第三部,直到ip地址遍历完
show code O(∩_∩)O
#!/bin/bash
#=================================
#这一点非常重要
#执行这个脚本的前提必须依据配置了免密登录
#=================================
#主机名或ip地址 (ip地址用空格分开)
SERVICES="10.211.55.3 10.211.55.4 10.211.55.5 10.211.55.6"
#jdk文件
#jdk_name=jdk-8u221-linux-x64.tar.gz
#4.配置环境变量
config_etc_profile(){
echo "---配置$1环境变量---"
ssh $1 'echo 'export JAVA_HOME=/usr/local/jdk8' >> /etc/profile';
ssh $1 'echo 'export PATH="'$'"PATH:"'$'"JAVA_HOME/bin:"'$'"JAVA_HOME/lib' >> /etc/profile';
echo "---刷新$1环境变量---"
ssh $1 "source /etc/profile";
}
#3.拷贝jdk文件到指定服务器
copy_jdk_to_server(){
echo "---将jdk目录拷贝到$1---"
scp -r /usr/local/jdk8/ root@$1:/usr/local/;
#调用配置环境变量的方法
config_etc_profile $1
}
#2.解压jdk安装文件
tar_zxvf_jdk_file(){
echo "解压jdk安装文件"
tar -zxvf jdk/* -C /usr/local/
#因为不同版本的jdk解压后,生成的文件目录不确定,所以统一改成jdk8,方便管理
mv /usr/local/$(ls /usr/local/ | grep jdk) /usr/local/jdk8;
}
main(){
#调用解压方法
tar_zxvf_jdk_file
for SERVICE in $SERVICES
do
echo "--$SERVICE--"
#拷贝文件
copy_jdk_to_server $SERVICE
done
}
#1.调用主程序
main
THE END
作者是一名自由程序员,住在上海,喜欢音乐、小说、旅行、以及编程。
P.S. 如果您喜欢这篇文章并且希望学习编程技术的话,请关注一下
网友评论