一键安装 tomcat 脚本

注:此脚本适用于centos安装,具体需要根据实际情况进行测试调整。

[root@centos8 ~]# vim install_tomcat_for_centos.sh
[root@centos8 ~]# cat install_tomcat_for_centos.sh
#!/bin/bash

. /etc/init.d/functions
DIR=`pwd`
JDK_FILE="jdk-8u301-linux-x64.tar.gz"
TOMCAT_FILE="apache-tomcat-8.5.70.tar.gz"
JDK_DIR="/usr/local"
TOMCAT_DIR="/usr/local"

install_jdk(){
if ! [ -f "$DIR/$JDK_FILE" ];then
    action "$JDK_FILE file is not exist" false
    exit;
elif [ -d $JDK_DIR/jdk ];then
    action "JDK already install" false
    exit
else
    [ -d "$JDK_DIR" ] || mkdir -pv $JDK_DIR
fi

tar xvf $DIR/$JDK_FILE -C $JDK_DIR
cd $JDK_DIR && ln -s jdk1.8.* jdk

cat > /etc/profile.d/jdk.sh <<EOF
export JAVA_HOME=$JDK_DIR/jdk
export JRE_HOME=\$JAVA_HOME/jre
export CLASSPATH=\$JAVA_HOME/lib/:\$JRE_HOME/lib/
export PATH=\$PATH:\$JAVA_HOME/bin
EOF
. /etc/profile.d/jdk.sh

java -version && action "JDK install complete" || { action "JDK install false" false ; exit; }

}

install_tomcat(){
if ! [ -f "$DIR/$TOMCAT_FILE" ];then
    action "$TOMCAT_FILE file is not exist" false
    exit;
elif [ -d $TOMCAT_DIR/tomcat ];then
    action "TOMCAT already install" false
    exit
else
    [ -d "$TOMCAT_DIR" ] || mkdir -pv $TOMCAT_DIR
fi

tar xf $DIR/$TOMCAT_FILE -C $TOMCAT_DIR
cd $TOMCAT_DIR && ln -s apache-tomcat-*/ tomcat
echo "PATH=$TOMCAT_DIR/tomcat/bin:"'$PATH' > /etc/profile.d/tomcat.sh
id tomcat &> /dev/null || useradd -r -s /sbin/nologin tomcat

cat > $TOMCAT_DIR/tomcat/conf/tomcat.conf <<EOF
JAVA_HOME=$JDK_DIR/jdk
EOF

chown -R tomcat.tomcat $TOMCAT_DIR/tomcat/

cat > /lib/systemd/system/tomcat.service <<EOF
[Unit]
Description=Apache Tomcat Web Application Container
#After=syslog.target network.target remote-fs.target nss-lookup.target
After=syslog.target network.target

[Service]
Type=forking
EnvironmentFile=$TOMCAT_DIR/tomcat/conf/tomcat.conf
ExecStart=$TOMCAT_DIR/tomcat/bin/startup.sh
ExecStop=$TOMCAT_DIR/tomcat/bin/shutdown.sh
RestartSec=3
PrivateTmp=true
User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now tomcat.service
systemctl is-active tomcat.service &> /dev/null && action "TOMCAT install aomplete" || { action "TOMCAT install false" false ; exit; }
}

install_jdk

install_tomcat