java环境部署+tomcat部署通过脚本实现⾃动化安装
java环境部署+tomcat部署通过脚本实现⾃动化安装
不知道别⼈是怎么想,我反正⽐较讨厌安装部署java,这个东西难倒是不难,可要操⼼啊,命令⼀条条的打,⿇烦。基于此,写⼀个脚本,从下载java到安装java,下载tomcat,到安装tomcat,并把tomcat作为⼀个服务启动部署好,这些⼯作希望全部由脚本来实现。
java和tomcat的版本都是基于centos7 64位系统,别的操作系统脚本不⽀持。
⾸先,需要确定脚本的功能,脚本功能如下:
1,判断脚本所在的操作系统类型,如果为centos7 64位系统,继续运⾏脚本,否则提⽰脚本⽆法运⾏。
2,⾃动下载java和tomcat,java使⽤版本固定为(本地安装,需要提前从官⽹下载),如果本地有这个版本,那么⽴刻本地安装jdk-8u271,如果没有,从⽹络下载 这个版本,安装jdk-8u20这个版本。tomcat 版本固定为apache-tomcat-9.0.
3,⾃动判断java环境是否存在,如果存在,脚本不安装java。
4,⾃动判断下载⼯具wget是否存在,如果存在,不yum安装,如果不存在⽴刻安装。
5,根据java和tomcat都是⼆进制安装包的特点,安装路径固定,都为 /usr/local/⽬录,分别为  /usr/local/java 和
/usr/local/tomcat.
6,考虑到可能会有意想不到的情况导致脚本失败,但环境变量脚本已添加,设置脚本只添加⼀次唯⼀的关于java和tomcat的脚本。
7,tomcat⾃⾝⽐较⼩巧,只有启动停⽌等脚本,将这些脚本加⼊centos7的systemd服务内,使得启动停⽌等功能更为仁杏化。
脚本结构的简单说明:
该脚本结构⽐较简单,也有很多改进空间,但所有功能可以实现,其中有⼀个⽐较特殊的bug,基本不影响整体运⾏。
(有⼈可以发现这个bug吗)
全部变量全局声明,简化期间,变量名并未规范,仅以字母取代。
全部采⽤函数调⽤,以实现模块化的灵活控制脚本运⾏。
由于是java 版本并没确定,因此环境变量的配置和systemctl管理是针对两个jdk写了两套,因此,脚本⽐较臃肿。有优化空间。
启动tomcat的命令为 :
systemctl enable tomcat && systemctl start tomcat
查看tomcat服务状态命令为:
systemctl status tomcat
欢迎试⽤该脚本
下⾯直接上源码:
#!/bin/bash
#!author zsk_john
a=`rpm -qa | grep wget |wc -l`
b=`find / -name jar |wc -l`
c=`find / -name | wc -l`
d=`find / -name | wc -l`
e=`find / -name catalina.sh | wc -l`
f="/usr/local/jdk1.8.0_20"
f="/usr/local/jdk1.8.0_20"
g="/usr/local/jdk1.8.0_271"
h=`cat /etc/os-release | grep ^PRETTY |awk -F= '{print $2}'`
#***************************************
#********判断wget是否安装,如果没有安装**
#********⽴刻安装************************
#************************************
#***********************************
function os_check_version() {
if ( echo ${h} |grep -q "CentOS Linux 7 (Core)" );then
echo "your os is centos7,will go on run this shell"
else
echo "your os is  not centos7,shell will be cancle"
exit 1
fi
}
function install_java(){
if [ $c -ne 0 ];then
echo "jdk8u271 will be  installed"
tar -zxf `find / -name ` -C /usr/local/
echo "jdk-8u271 is success installed"
else
echo "cound not find jdk-8u271, will install jdk-8u20"
wget  -O /usr/local/src/ /
tar -zxf `find / -name ` -C /usr/local/
echo "jdk-8u20-linux-x64 is install success"
echo "java is install~~~~~~~"
fi
}
function install_tomcat() {
wget -O /usr/local/src/ mirrors.tuna.tsinghua.edu/apache/tomcat/tomcat-9/v9.0.38/bin/apache-tomcat-9.0.        tar -zxf `find / -name ` -C /usr/local/
mv /usr/local/apache-tomcat-9.0.38 /usr/local/tomcat
}
function jdk_1_8_0_20_env() {
echo "JAVA_HOME=/usr/local/jdk1.8.0_20
TOMCAT_HOME=/usr/local/tomcat
PATH=.\$PATH:\$JAVA_HOME/bin:\$TOMCAT_HOME/bin
java安装完整教程CATALINA_HOME=/usr/local/tomcat
CATALINA_BASE=$CATALINA_HOME
CATALINA_PID=$CATALINA_BASE/bin/tomcat.pid
CLASSPATH=\$JAVA_HOME/jre/lib/ext:\$JAVA_HOME/lib/tools.jar
export CLASSPATH PATH JAVA_HOME CATALINA_HOME CATALINA_BASE CATALINA_PID">>/etc/profile
source /etc/profile
}
function jdk_1_8_0_271_env() {
echo "JAVA_HOME=/usr/local/jdk1.8.0_271
TOMCAT_HOME=/usr/local/tomcat
PATH=.\$PATH:\$JAVA_HOME/bin:\$TOMCAT_HOME/bin
CATALINA_HOME=/usr/local/tomcat
CATALINA_BASE=$CATALINA_HOME
CATALINA_PID=$CATALINA_BASE/bin/tomcat.pid
CLASSPATH=\$JAVA_HOME/jre/lib/ext:\$JAVA_HOME/lib/tools.jar
export CLASSPATH PATH JAVA_HOME CATALINA_HOME CATALINA_BASE CATALINA_PID">>/etc/profile
source /etc/profile
}
function jdk_20_systemd() {
>/usr/lib/systemd/system/tomcat.service
cat >>/usr/lib/systemd/system/tomcat.service<<EOF
[Unit]
Description=web server tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk1.8.0_20/"
PIDFile="/usr/local/tomcat/bin/tomcat.pid"
PIDFile="/usr/local/tomcat/bin/tomcat.pid"
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
}
function jdk_271_systemd() {
>/usr/lib/systemd/system/tomcat.service
cat >>/usr/lib/systemd/system/tomcat.service<<EOF
[Unit]
Description=web server tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target  [Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk1.8.0_271/"
PIDFile="/usr/local/tomcat/bin/tomcat.pid"
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
}
#===================================================
if [ $a -eq 0 ];then
echo "wget is not install,now ,begin install wget"
yum install wget -y -q
else
echo "wget is already installed"
fi
#==================================================== os_check_version
#====================================================
if [ $b -eq 0 ];then
echo "java is not in your system,will be install java"
echo " begin install java"
install_java
else
echo "java is already installed!!~~"
fi
#===================================================== if [ $e -ne 0 ];then
echo "tomcat is already installed~~"
else
install_tomcat
fi
#=================================================
if [ -d $f ];then
sed -i '/^JAVA_HOME/,$d' /etc/profile
jdk_1_8_0_20_env
jdk_20_systemd
else
echo "jdk_1.8.0.20 is not installed"
fi
#===============================================
if [ -d $g ];then
sed -i '/^JAVA_HOME/,$d' /etc/profile
jdk_1_8_0_271_env
jdk_271_systemd
else
echo "jdk_1.8.0.271 is not installed"
fi
fi
#************************************ #***********************************

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。