#!/bin/bash
# Author : 19044168
# Date : 2022/08/15
# Func : 安装tomcat和jdk
# 例如:sh tomcat_install.sh /opt
##############################################################################
usage="Usage: tomcat_install.sh tomcatPath"
# 检查传参个数
if [ $# -eq 1 ];then
echo "# 脚本传入参数tomcat安装目录: "$1
else
echo "ERROR: 传入参数个数不符合预期,请输入tomcat安装目录"
echo $usage
exit
fi
#tomcat安装目录
tomcatPath=$1
#Set PWD当前脚本所在目录
PWDDIR=`pwd`
#tomcat安装包
fileTomcat=$(ls ${PWDDIR} | grep 'apache-tomcat*')
#jdk1安装包
filejdkjar=$(ls $PWDDIR | grep 'jdk.*gz')
#创建tomcat安装目录
create_tomcatdir()
{
if [ ! -d ${tomcatPath} ];then
#创建tomcat安装目录
mkdir -p ${tomcatPath}
else
echo "${tomcatPath}目录存在,不需要创建"
fi
}
Check_error()
{
if [ $? -eq 0 ];then
echo "SUCCESS"
else
echo "FAIL" >>$PWDDIR/create_tomcat.log
fi
}
#创建tomcatuser用户
create_user()
{
if id -u tomcatuser >/dev/null 2>&1;then
echo "user tomcatuser exists"
else
#创建tomcat用户和组
groupadd tomcatuser;
useradd -g tomcatuser tomcatuser;
fi
su - tomcatuser -c "mkdir software"
}
#安装tomcat并软连到tomcatuser下
install_tomcat()
{
if [ -d /home/tomcatuser/software/tomcat ]
then
#如果java目录存在,就删除java目录
rm -rf /home/tomcatuser/software/tomcat
fi
#输入tomcat压缩文件
if [ -f ${fileTomcat} ]
then
echo "正在创建tomcat解压后使用的目录";
create_tomcatdir
Check_error
#解压tomcat
tar -zxvf ${fileTomcat} -C ${tomcatPath};
echo "tomcat解压完成";
else
echo "请输入正确的文件";
exit 1
fi
#给解压后的tomcat赋权,并目录软连到tomcatuser目录下
tomcatDir=$(ls -d ${tomcatPath}/apache-tomcat*/)
chown -R tomcatuser:tomcatuser $tomcatDir
su - tomcatuser -c "ln -snf $tomcatDir /home/tomcatuser/software/tomcat"
echo "tomcat安装到tomcatuser完成"
}
#安装jdk
install_jdk()
{
if [ ! -d /home/tomcatuser/software/java ]
then
#如果java目录存在,就删除java目录
rm -rf /home/tomcatuser/software/java
fi
if [ -f "${filejdkjar}" ]; then
#开始安装jdk1.8
tar -zxvf ${filejdkjar} -C ${tomcatPath}
else
echo "jdk1安装包不满足是以jdk1.8.开头的.tar.gz包"
exit 4
fi
#获取tomcatPath下的jdk目录
javaDir=$(ls -d ${tomcatPath}/{*java*/,*jdk*/})
#给解压后的jdk目录赋权,并目录软连到tomcatuser目录下
chown -R tomcatuser:tomcatuser ${javaDir};
#建立jdk的软连
su - tomcatuser -c "ln -snf $javaDir /home/tomcatuser/software/java"
echo "jdk安装到tomcatuser完成"
}
#校验java环境变量是否存在,存在删除
checkExistJava(){
echo "检查java环境变量配置开始"
#JAVA_HOME配置
jdk_javahome=$(grep -n "export JAVA_HOME=.*" /home/tomcatuser/.bashrc | cut -f1 -d':')
if [ -n "$jdk_javahome" ];then
echo "JAVA_HOME 已经配置,删除重新配置"
sed -i "${jdk_javahome}d" /home/tomcatuser/.bashrc
fi
#PATH配置
jdk_path=$(grep -n "export PATH=.*\$JAVA_HOME.*" /home/tomcatuser/.bashrc | cut -f1 -d':')
if [ -n "$jdk_path" ];then
echo "PATH已经配置,删除重新配置"
sed -i "${jdk_path}d" /home/tomcatuser/.bashrc
fi
}
#配置tomcatuser用户的环境变量
conf_javahome()
{
#校验java环境变量是否存在,存在就删除
checkExistJava
#修改tomcatuser环境变量,并source
sed -i '$a export JAVA_HOME=/home/tomcatuser/software/java' /home/tomcatuser/.bashrc
sed -i '$a export PATH=$JAVA_HOME/bin/:$PATH' /home/tomcatuser/.bashrc
source /home/tomcatuser/.bashrc
#安装完成后检查环境变量
versionjdk=$(su - tomcatuser -c "java -version 2>&1|grep 'java version'")
echo $versionjdk
if [ -n "${versionjdk}" ];then
echo "已配置好tomcatuser的jdk环境变量"
else
echo "重新配置jdk"
return 1
fi
}
main()
{
echo "tomcat安装完成,创建用户"
create_user
echo "开始安装tomcat"
install_tomcat
echo "开始安装jdk"
install_jdk
echo "开始配置JAVA_HOME"
conf_javahome
}
main;