java+tomcat+apr+tomcatnative(+切割日志)

xiaoxiao2021-02-28  93

#!/bin/bash ############安装APR################   cd /data/soft/ tar zxf apr-1.5.2.tar.gz cd apr-1.5.2 ./configure --prefix=/usr/local/apr/ make make install   cd /data/soft/ tar zxf apr-iconv-1.2.1.tar.gz cd apr-iconv-1.2.1 ./configure --prefix=/usr/local/apr-iconv/ --with-apr=/usr/local/apr/ make make install   cd /data/soft/ tar zxf apr-util-1.5.2.tar.gz cd apr-util-1.5.2 ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/ --with-apr-iconv=/usr/local/apr-iconv/bin/apriconv make make install ##################安装JDK+TOMCAT##################### cd /data/soft/ tar zxf jdk-7u71-linux-x64.tar.gz mkdir -p /data/test_apps/jdk/ /bin/cp -ap jdk1.7.0_71/* /data/test_apps/jdk/ cat > /etc/profile.d/java.sh << 'EOF' export JAVA_HOME=/data/test_apps/jdk export JRE_HOME=/data/test_apps/jdk/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin EOF source /etc/profile.d/java.sh java -version mkdir -p /data/test_apps/ mkdir -p /data/test_logs/ cd /data/soft/ tar zxf apache-tomcat-8.0.32.tar.gz /bin/cp -ap apache-tomcat-8.0.32 /data/test_apps/tomcat cd /data/test_apps/tomcat/ rm -rf logs ln -s /data/test_logs logs cd /data/soft tar zxf tomcat-native-1.2.7-src.tar.gz cd /data/soft/tomcat-native-1.2.7-src/native ./configure \ --prefix=/usr/local/tomcatnative \ --with-apr=/usr/local/apr/bin/apr-1-config \ --with-java-home=/data/test_apps/jdk \ --with-ssl=no make make install #这个地方启用ssl的话会报OpenSSL不兼容,应该是要升级版本 #总之不建议启用tomcat的APR模式 cat > /etc/profile.d/tomcatnative.sh << EOF export LD_LIBRARY_PATH=/usr/local/tomcatnative/lib/:/usr/local/apr/lib/ EOF . /etc/profile.d/tomcatnative.sh /data/test_apps/tomcat/bin/catalina.sh configtest #自定义tomcat启动关闭脚本 cat > /data/test_apps/tomcat/start << 'EOF'  #!/bin/bash  cd `dirname $0`; current_path=$PWD CATALINA_HOME=$current_path CATALINA_BASE=$current_path CATALINA_PID=$current_path/pid JAVA_OPTS="-server -Xms8192m -Xmx8192m -Xmn3072m -XX:SurvivorRatio=6 -XX:PermSize=256m -XX:MaxPermSize=512m -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC" JAVA_OPTS="-Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=8014 \ -Dcom.sun.management.jmxremote.ssl=false \ -Dcom.sun.management.jmxremote.authenticate=false $JAVA_OPTS" export JAVA_HOME=/data/test_apps/jdk export LD_LIBRARY_PATH=/usr/local/tomcatnative/lib/:/usr/local/apr/lib/ export CATALINA_HOME CATALINA_BASE CATALINA_PID JAVA_OPTS $CATALINA_HOME/bin/catalina.sh start EOF cat > /data/test_apps/tomcat/start_jprofiler << 'EOF' #!/bin/bash cd `dirname $0`; current_path=$PWD CATALINA_HOME=$current_path CATALINA_BASE=$current_path CATALINA_PID=$current_path/pid JAVA_OPTS="-server -Xms8192m -Xmx8192m -Xmn3072m -XX:SurvivorRatio=6 -XX:PermSize=256m -XX:MaxPermSize=512m -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC" CATALINA_OPTS="-agentpath:/usr/local/jprofiler/bin/linux-x64/libjprofilerti.so=port=8849,nowait $CATALINA_OPTS" export CATALINA_OPTS export JAVA_HOME=/data/test_apps/jdk export LD_LIBRARY_PATH=/usr/local/tomcatnative/lib/:/usr/local/apr/lib/ export CATALINA_HOME CATALINA_BASE CATALINA_PID JAVA_OPTS $CATALINA_HOME/bin/catalina.sh start EOF #启用jvm监控时,注意要在/etc/hosts里面增加127.0.0.1 hostname的解析记录,不然可能会报错 cat > /data/test_apps/tomcat/stop << 'EOF'  #! /bin/bash cd `dirname $0` current_path=$PWD CATALINA_HOME=$current_path CATALINA_BASE=$current_path CATALINA_PID=$current_path/pid export JAVA_HOME=/data/test_apps/jdk export CATALINA_HOME CATALINA_BASE CATALINA_PID $CATALINA_HOME/bin/catalina.sh stop -force EOF echo "/bin/bash /data/test_apps/tomcat/start" >> /etc/rc.local sh /data/test_apps/tomcat/start sh /data/test_apps/tomcat/stop ps:关于jvm启动配置,可以先知配置堆最大最小内存和GC,别的以后慢慢再配置 -server  -Xms8192m    #设置堆最大最小内存相同,避免抖动 -Xmx8192m    #设置堆最大最小内存相同,避免抖动 -Xmn1536m    ##设置堆年轻代大小,官方推荐配置为整个堆的3/8 -XX:SurvivorRatio=6  #建议值 -XX:PermSize=256m #设置非堆内存最小值 -XX:MaxPermSize=512m #设置非堆内存最大值 -XX:ParallelGCThreads=8   #设置成和CPU核数相同,年老代垃圾回收线程 -XX:+UseConcMarkSweepGC"  # ================================================================ cat > server.xml << 'EOF' <?xml version='1.0' encoding='utf-8'?> <Server port="8005" shutdown="SHUTDOWN">   <Listener className="org.apache.catalina.startup.VersionLoggerListener" />   <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />   <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />   <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />   <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />     <GlobalNamingResources>     <Resource name="UserDatabase" auth="Container"               type="org.apache.catalina.UserDatabase"               description="User database that can be updated and saved"               factory="org.apache.catalina.users.MemoryUserDatabaseFactory"               pathname="conf/tomcat-users.xml" />   </GlobalNamingResources>     <Service name="Catalina">     <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"         maxThreads="1000" minSpareThreads="200"/>       <Connector executor="tomcatThreadPool"                port="8080"                protocol="org.apache.coyote.http11.Http11AprProtocol"                acceptCount="200"                connectionTimeout="60000"                keepAliveTimeout="30000"                maxKeepAliveRequests="100"                maxConnections="3000"                redirectPort="8443"                maxHttpHeaderSize="8192"                URIEncoding="UTF-8"                enableLookups="false"                disableUploadTimeout="true"     />       <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />     <Engine name="Catalina" defaultHost="localhost">         <Realm className="org.apache.catalina.realm.LockOutRealm">         <Realm className="org.apache.catalina.realm.UserDatabaseRealm"                resourceName="UserDatabase"/>       </Realm>         <Host name="localhost"  appBase="webapps"             unpackWARs="true" autoDeploy="true">         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"                prefix="localhost_access_log" suffix=".txt"                pattern="%h %l %u %t "%r" %s %b" />         </Host>     </Engine>   </Service> </Server> EOF ##tomcat的最大连接数参数是maxConnections,这个值表示最多可以有多少个socket连接到tomcat上。 ##BIO模式下默认最大连接数是它的最大线程数(缺省是200),NIO模式下默认是10000,APR模式则是8192(windows上则是低于或等于maxConnections的1024的倍数)。 ##如果设置为-1则表示不限制。 ##普通账号启动tomcat的脚本 ===================================================================== cd `dirname $0`; current_path=$PWD   CATALINA_HOME=$current_path CATALINA_BASE=$current_path CATALINA_PID=$current_path/pid JAVA_OPTS="-server -Xms8192m -Xmx8192m -XX:+UseConcMarkSweepGC" JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8024 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false $JAVA_OPTS"   # For SELinux we need to use 'runuser' not 'su' if [ -x "/sbin/runuser" ]; then     SU="/sbin/runuser -s /bin/sh" else     SU="/bin/su -s /bin/sh" fi     # Get the tomcat config (use this for environment specific settings) TOMCAT_CFG="/etc/tomcat/tomcat.conf" if [ -r "$TOMCAT_CFG" ]; then     . $TOMCAT_CFG fi   # Get instance specific config file if [ -r "/etc/sysconfig/${NAME}" ]; then     . /etc/sysconfig/${NAME} fi     TOMCAT_SCRIPT="$CATALINA_HOME/bin/catalina.sh"   TOMCAT_USER="${TOMCAT_USER:-tomcat}"   #chown ${TOMCAT_USER}:${TOMCAT_USER} /var/log/${NAME}   options="export CATALINA_HOME CATALINA_BASE CATALINA_PID JAVA_OPTS;" #options="" #options="$options $(awk '!/^#/ && !/^$/ { ORS=" "; print "export ", $0, ";" }' $TOMCAT_CFG)" #options="$options $(awk '!/^#/ && !/^$/ { ORS=" ";print "export ", $0, ";" }' /etc/sysconfig/${NAME})" TOMCAT_SCRIPT="$options ${TOMCAT_SCRIPT}"     $SU - $TOMCAT_USER -c "${TOMCAT_SCRIPT} start"     options="export \ CATALINA_BASE="${current_path}" \ CATALINA_HOME="${current_path}" \ CATALINA_PID="${current_path}/pid" \ JAVA_OPTS='-server -Xms8192m -Xmx8192m -XX:+UseConcMarkSweepGC';" ########切割tomcat日志######## crontab -l #catalina.out logs cut */1 * * * * /bin/bash /scripts/logrotate.sh   cat /scripts/logrotate.sh #!/bin/bash  log="/data/test_apps/test*/tomcat/logs/catalina.out" size=`ls -lrt $log | cut -d " " -f 5` if [ $size -ge 30000000 ]; then egrep "at |Exception" $log >> /data/test_apps/test*/tomcat/logs/Exception.log /usr/sbin/logrotate -f /scripts/tomcat; fi   cat /scripts/tomcat /data/test_apps/test*/tomcat/logs/catalina.out { rotate 300 missingok notifempty copytruncate size = 30M
转载请注明原文地址: https://www.6miu.com/read-80964.html

最新回复(0)