说明:tomcat一键在线安装脚本,默认使用国内源下载,下载速度极快,默认安装在/opt 目录,默认安装端口为 8080,安装的默认版是 apache-tomcat-8.5.88.tar.gz 。
1、可自定义tomcat版本安
2、可自定义tomcat安装路径
3、可自定义tomcat 端口号
2、卸载Linux自带的openjdk,安装oracle-jdk
#!/bin/bash
# create by tudou
# 2023-04-26
set -e
# 用户自定义信息
# 默认安装路径
# install_root=/opt
# 默认端口
# tomcat_port=8080
# 默认下载地址(包括版本号)
# download_url="https://repo.huaweicloud.com/apache/tomcat/tomcat-8/v8.5.88/bin/apache-tomcat-8.5.88.tar.gz"
# download_url=https://repo.huaweicloud.com/apache/tomcat/tomcat-8/v8.5.56/bin/apache-tomcat-8.5.56.tar.gz
# tomcat 版本信息,请参考华为云: https://repo.huaweicloud.com/apache/tomcat/
# 确认是 Centos7 系统,并且是 root 用户;否则退出安装
check(){
# 确认是 Centos7 系统
systemver=`cat /etc/redhat-release|sed -r 's/.* ([0-9]+)\..*/\1/'`
echo $systemver
if [[ $systemver != "7" ]];then
echo "请在Centos7系统执行脚本,请检查系统版本,终止作业"
exit 1
fi
# 确认执行用户是 root
if [[ $(id -u --name) != "root" ]];then
echo "请使用 root 用户登录,执行脚本;请检查执行用户,终止作业"
exit 1
fi
# 已运行 catalina ,则退出安装
if [[ `ps -ef |grep catalina |wc -l` -ge 2 ]];then
echo "已有运行的 catalina,将退出安装"
exit 1
fi
}
# 安装 oracle-jdk
Instlljdk(){
if [[ `rpm -qa|grep -i openjdk` -ge 2 ]];then
rpm -qa|grep -i openjdk|xargs rpm -e --nodeps
fi
which java || rpm -Uvh https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.rpm
# yum install -y https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.rpm
}
# 安装 tomcat
Installtomcat(){
# 不存在安装目录,则新建
if [ -z ${install_root} ];then
install_root=/opt
else
install_root=${install_root}
fi
if [ ! -d ${install_root} ];then
mkdir -p ${install_root}
fi
# 若tomcat 下载链接为空,则下载默认版本安装
if [ -z ${download_url} ];then
download_url="https://repo.huaweicloud.com/apache/tomcat/tomcat-8/v8.5.88/bin/apache-tomcat-8.5.88.tar.gz"
else
download_url=${download_url}
fi
which wget || yum install -y wget
if [ ! -d temp ];then
mkdir -p temp
fi
# 下载 tomcat
tomcat_version=$(basename ${download_url})
if [ ! -e temp/${tomcat_version} ];then
wget ${download_url} -P temp
fi
# 若存在旧文件,则备份,若是链接,直接删除
if [ -L ${install_root}/${tomcat_version%.tar.gz} ];then
rm -rvf ${install_root}/${tomcat_version%.tar.gz}
fi
if [ -L ${install_root}/tomcat ];then
rm -rvf ${install_root}/tomcat
fi
if [ -d ${install_root}/${tomcat_version%.tar.gz} ];then
mv -f ${install_root}/${tomcat_version%.tar.gz} ${install_root}/${tomcat_version%.tar.gz}-$(date +%Y%m%d%H%M%S)
fi
if [ -d ${install_root}/tomcat ];then
mv -f ${install_root}/tomcat ${install_root}/tomcat-$(date +%Y%m%d%H%M%S)
fi
# 解压
tar -xvf temp/${tomcat_version} -C ${install_root}
ln -s ${install_root}/${tomcat_version%.tar.gz} ${install_root}/tomcat
# 不指定端口,则默认使用端口: 8080
if [ -z ${tomcat_port} ];then
tomcat_port=8080
else
tomcat_port=${tomcat_port}
fi
sed -ir "s/${tomcat_port}/8080/g" ${install_root}/${tomcat_version%.tar*}/conf/server.xml
# 启动 tomcat
${install_root}/${tomcat_version%.tar.gz}/bin/startup.sh
}
Tomcatinfo(){
# 检查 tomcat 是否启动成功
if [[ `ps -ef |grep catalina |wc -l` -ge 2 ]];then
echo "catalina is running..."
tomcat_status="catalina is running..."
else
echo "catalina is stoped ..."
echo "please check your tomcat ..."
tomcat_status="catalina is stoped ..."
fi
which ifconfig || yum install -y net-tools
which tee || yum install -y tee
echo "tomcat info: " | tee temp/install.log
# 默认获取服务器第一个网卡的IP
HostIP=`ifconfig |grep inet|grep -oP "\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}"| grep -vE "127.0.0.1|^255"|head -n 1`
echo "HostIP: ${HostIP}"| tee -a temp/install.log
echo "tomcat_port: ${tomcat_port} " | tee -a temp/install.log
echo "install_root: ${install_root} " | tee -a temp/install.log
echo "tomcat_home: ${install_root}/${tomcat_version%.tar*} " |tee -a temp/install.log
echo "tomcat_version: ${tomcat_version} " | tee -a temp/install.log
echo "tomcat_status: ${tomcat_status}" | tee -a temp/install.log
echo "java_version: 1.8.0_202 "
# 输出 tomcat 安装信息
echo -e "\e[33m"
cat temp/install.log
echo -e "\e[0m"
}
# 执行脚本
# check
Instlljdk
Installtomcat
Tomcatinfo