#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
LANG=en_US.UTF-8
RD="\033[31m" # 错误消息
GR="\033[32m" # 成功消息
YL="\033[33m" # 告警消息
BL="\033[36m" # 日志消息
PL='\033[0m'
clear
echo -e "${YL}##################################################${PL}"
echo -e "${YL}#${PL}${GR}脚本名称${PL}: 一键安装java、tomcat脚本 ${YL}#${PL}"
echo -e "${YL}#${PL}${GR}作 者${PL}: ${YL}#${PL}"
echo -e "${YL}#${PL}${GR}网 址${PL}: ${YL}#${PL}"
echo -e "${YL}#${PL}${GR}文章地址${PL}: ${YL}#${PL}"
echo -e "${YL}##################################################${PL}"
sleep 0.5
echo -e "${RD}本脚本将会自动安装1.8.0_221版本jdk以及8.5.23版本tomcat,请确认是否安装?${PL}"
read -r -p "确定请按 y 任意键则退出!请选择:[y/n]" input
if [[ $input != "y" ]]; then
exit 1
else
echo -e "${GR}正在下载java tomcat安装包,请稍后${PL}"
fi
wget -q -c https://pan.cnsre.cn/d/Package/Linux/jdk/tomcat-8.5.23_jdk1.8.0_221.tar.gz
tar -zxf tomcat-8.5.23_jdk1.8.0_221.tar.gz
sleep 0.5
echo -e "${RD}是否确定安装 1.8.0_221 版本 jdk? ${PL}"
read -r -p "确定请按 y 任意键则退出!请选择:[y/n]" input
if [[ $input != "y" ]]; then
exit 1
else
echo -e "${GR}你已经选择安装1.8.0_221版本 jdk${PL}"
fi
read -r -p "请选择安装jdk的绝对路径,请不要输入最后的"/":" input
if [ ! -d $input ]; then
echo -e "${RD}你输入的路径不存在,请重新输入或者创建后再次执行脚本${PL}"
exit 1
fi
echo -e "${GR}正在安装 1.8.0_221 版本 jdk${PL}"
mv jdk1.8.0_221 $input/jdk
cat << EOF >> /etc/profile
############## JAVA ##############
export JAVA_HOME=$input/jdk
export JAVA_BIN=$JAVA_HOME/bin
export JAVA_LIB=$JAVA_HOME/lib
export CLASSPATH=.:$JAVA_LIB/tools.jar:$JAVA_LIB/dt.jar
export PATH=$JAVA_BIN:$PATH
EOF
echo -e "${GR}验JAVA home及版本${PL}"
sleep 2
chmod +x $input/jdk/bin/java
chmod +x $input/jdk/jre/bin/java
source /etc/profile
echo -e"${GR}你的java安装路径为:$JAVA_HOME ${PL}"
java -version
echo -e "${RD}是否确定安装 8.5.23 版本 tomcat ? ${PL}"
read -r -p "确定请按 y 任意键则退出!请选择:[y/n]" input
if [[ $input != "y" ]]; then
exit 1
else
echo -e "${GR}你已经选择安装 8.5.23 版本 tomcat ${PL}"
fi
read -r -p "请选择安装tomcat的绝对路径,请不要输入最后的"/":" input
if [ ! -d $input ]; then
echo -e "${RD}你输入的路径不存在,请重新输入或者创建后再次执行脚本${PL}"
exit 1
fi
echo -e "${GR}正在安装 8.5.23 版本 tomcat${PL}"
mv apache-tomcat-8.5.23 $input/tomcat
chmod +x $input/tomcat/bin/*.sh
echo -e "${GR}正在将tomcat加入系统服务${PL}"
sleep 2
touch /usr/lib/systemd/system/tomcat.service
cat << EOF >> /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=$input/tomcat/bin/startup.sh
ExecReload=$input/tomcat/bin/startup.sh
ExecStop=$input/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
EOF
sed -i '2i\export JAVA_HOME='$JAVA_HOME'' $input/tomcat/bin/catalina.sh
systemctl daemon-reload
systemctl restart tomcat.service
systemctl status tomcat.service
echo -e "${RD}请确认是否选择开机启动tomcat ? ${PL}"
read -r -p "确定请按 y 任意键则退出!请选择:[y/n]" input
if [[ $input != "y" ]]; then
systemctl disable tomcat.service
echo -e "${GR}已为你关闭tomcat开机启动 ${PL}"
else
systemctl enable tomcat.service
echo -e "${GR}已为你开启tomcat开机启动 ${PL}"
fi
echo -e "${YL}==================================================================${PL}"
echo -e "${GR}tomcat部署完成并启动${PL}"
echo -e "${YL}==================================================================${PL}"
echo -e "${GR}外网tomcat地址: http://$(curl -sS --connect-timeout 10 -m 60 cip.cc |grep IP|awk -F ':[ ]' '{print $2}'):8080${PL}"
echo -e "${GR}内网tomcat地址: http://$(ip addr | grep -E -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -E -v "^127\.|^255\.|^0\." | head -n 1):8080${PL}"
echo -e "${GR}你可以通过以下命令来管理tomcat服务${PL}"
echo -e "${GR}启动tomcat服务:systemctl start tomcat.service${PL}"
echo -e "${RD}停止tomcat服务:systemctl stop tomcat.service${PL}"
echo -e "${YL}重启tomcat服务:systemctl restart tomcat.service${PL}"
echo -e "${GR}若无法访问tomcat,请检查防火墙/安全组是否有放行tomcat 8080 端口${PL}"
echo -e "${GR}==================================================================${PL}"
一键安装java、tomcat脚本
于 2024-05-22 19:55:57 首次发布