centos脚本安装tomcat,加入apr启动,附日志分割

最近实验tomcat集群,顺便整理了一下之前的tomcat的安装脚本,适合centos安装使用。
集成了apr启动模式。脚本跑完,apr应该就可以生效了。

再加上一个cronolog日志分割的小脚本单独放在最后,没有合并在一起。

#!/bin/bash
#Auto install Apache Tomcat8.5.39
#需要的包:jdk-8u201-linux-x64.tar.gz,apache-tomcat-8.5.39.tar.gz,apr-1.7.0.tar.gz,apr-util-1.6.1.tar.gz


echo "-----------------install Tomcat -----------------"
echo "将脚本,jdk-8u201-linux-x64.tar.gz,apache-tomcat-8.5.39.tar.gz,apr-1.7.0.tar.gz,apr-util-1.6.1.tar.gz放在同一目录下,Enter继续"
read

read -p "是否安装jdk环境(输入y/Y安装,其他不安装):" inputMsg
if [ "$inputMsg" == "Y" ] || [ "$inputMsg" == 'y' ]
then
    echo "-----------------unzip JDK tar file-----------------"
    tar zxf ./jdk-8u201-linux-x64.tar.gz
    if [ $? -eq 0 ];then
		echo "Unzip JDK file  success! "
    else 
        exit 18
    fi
    echo "Mv it to /usr/local/java"
    mv ./jdk1.8.0_201 /usr/local/java
    echo 'JAVA_HOME=/usr/local/java'>>/etc/profile
    echo 'JRE_HOME=/usr/local/java/jre'>>/etc/profile
    echo 'PATH=$PATH:$JAVA_HOME/bin'>>/etc/profile
    echo 'CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib'>>/etc/profile
    echo 'export JAVA_HOME JRE_HOME CLASSPATH PATH'>>/etc/profile
    
    source /etc/profile

fi

if [ $? -eq 0 ]
	then 
		echo "Success! Now we will unzip Apache Tomcat file,Press any key to Go Next"
		read
fi

tar zxf ./apache-tomcat-8.5.39.tar.gz
if [ $? -eq 0 ]
	then 
		echo "Unzip Apache Tomcat file Success! Now we will MV it to /usr/local/tomcat."
fi

mv ./apache-tomcat-8.5.39 /usr/local/tomcat


tar zxf ./apr-1.7.0.tar.gz

if [ $? -eq 0 ]
	then 
		echo "Success Unzip Apr! Let's Install it."
fi

cd apr-1.7.0
yum install -y gcc gcc-c++
./configure --prefix=/usr/local/apr
make 
make install
if [ $? -eq 0 ]
    then 
    	echo "Success install Apr! Let's Install apr-util"
    	read
fi
cd ..
if [ ! -f "apr-util-1.6.1.tar.gz" ]
    then 
    	echo "apr-util-1.6.1.tar.gz 不存在,安装退出"
    	exit 16
fi
yum install -y expat-devel
tar zxf ./apr-util-1.6.1.tar.gz
cd apr-util-1.6.1
./configure --with-apr=/usr/local/apr
make
make install

if [ $? -eq 0 ]
    then 
    	echo "Success install Apr-utils! Let's install tomcat-native"
fi

yum install openssl-devel -y
cd /usr/local/tomcat/bin/
if [ ! -f "tomcat-native.tar.gz" ]
    then
        echo "tomcat-native.tar.gz 不存在,安装退出"
fi

tar zxf tomcat-native.tar.gz
cd ./tomcat-native-1.2.21-src/native
if [ $? -ne 0 ];then
    echo "没有进入到tomcat-native-1.2.21-src/native"
    exit 18
fi
./configure --with-java-home=/usr/local/java --with-apr=/usr/local/apr/ --with-ssl=yes
if [ $? -eq 0 ]
	then 
		echo "tomcat-native --with-ssl Success!"
	else
		./configure --with-java-home=/usr/local/java --with-apr=/usr/local/apr
fi

make
make install

if [ $? -eq 0 ]
	then 
		echo "Success! Set LB now! Press any key to Go Next"
		read
fi

echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib">>/etc/profile
source /etc/profile

echo "在server.xml中修改apr配置"
sed -i "s#Connector port=\"8080\" protocol=\"HTTP/1.1\"#Connector port=\"8080\" protocol=\"org.apache.coyote.http11.Http11AprProtocol\"#g" /usr/local/tomcat/conf/server.xml


echo "Now configure tomcat configure files.Like catalina.sh servert.conf"
read
read -p "是否修改网络内核参数(输入y/Y修改,其他不修改):" inputMsg
if [ "$inputMsg" == "Y" ] || [ "$inputMsg" == 'y' ]
then
    echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_fin_timeout = 30" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_keepalive_time = 1200" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_tw_recycle = 1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_max_syn_backlog = 8192" >> /etc/sysctl.conf
    echo "net.ipv4.ip_local_port_range = 10000 65000" >> /etc/sysctl.conf

    sysctl -p
fi
read -p "是否把tomcat加入开机启动(输入y/Y加入,其他不加入):" inputMsg
if [ "$inputMsg" == "Y" ] || [ "$inputMsg" == 'y' ]
then
    echo "把tomcat加入开机启动."
    echo "export JAVA_HOME=/usr/local/java">>/etc/rc.d/rc.local
    echo "export PATH=\$JAVA_HOME/bin:\$PATH">>/etc/rc.d/rc.local
    echo "export CLASSPATH=\$JAVA_HOME/jre/lib/ext:\$JAVA_HOME/lib/tools.jar">>/etc/rc.d/rc.local
    echo "export LD_LIBRARY_PATH=/usr/local/apr/lib">>/etc/rc.d/rc.local
    echo "/usr/local/tomcat/bin/startup.sh">>/etc/rc.d/rc.local
    chmod +x /etc/rc.d/rc.local
fi   

read -p "是否在/data/tomcat/下建立链接(输入y/Y加入,其他不加入):" inputMsg
if [ "$inputMsg" == "Y" ] || [ "$inputMsg" == 'y' ]
then
    echo "在/data/tomcat/下建立链接"
    mkdir -p /data/tomcat
    mv /usr/local/tomcat/logs /data/tomcat/
    mv /usr/local/tomcat/webapps /data/tomcat/
    
    ln -s /data/tomcat/logs /usr/local/tomcat/
    ln -s /data/tomcat/webapps /usr/local/tomcat/
fi

echo "脚本安装结束"
echo "使用启动命令启动: /usr/local/tomcat/bin/startup.sh"

以下是cronolog日志分割的东东

#!/bin/bash

echo "脚本跟cronolog-1.6.2.tar.gz放在一起"
read
tar zxf ./cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make
make install
echo "cronolog已经安装在:`which cronolog`"

read -p "是否需要配置catalina.sh分割日志(输入y/Y配置,其他不配置):" inputMsg
if [ "$inputMsg" == 'y' ] || [ "$inputMsg" == 'Y' ] 
then
    cd /usr/local/tomcat/bin
    # 设置备份日期
    TODAY=`date +%Y%m%d`
    # 备份catalina.sh
    cp catalina.sh catalina.sh.bak$TODAY
    # 将不以"#"开头的符合正则的行替换
    # sed -i '/^#/!s/catalina.out/catalina.%Y-%m-%d.log/g' catalina.sh
    # 此处的"&"表示引用正则匹配的部分
    sed -i 's/touch "$CATALINA_OUT"/#&/g' catalina.sh
    # 使用"\"转义"\"
    sed -i 's/start \\/start 2>\&1 \\/g' catalina.sh
    # 使用"\"转义"&";使用"@"代替原本的"/"
    sed -i 's@>> "$CATALINA_OUT" 2>&1 "&"@| /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null \&@g' catalina.sh    
    echo "配置分割完成"
else
    echo "不做配置"
fi




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值