Script d'init Tomcat

#!/bin/sh
. /etc/init.d/functions

RETVAL=$?
PATH=/usr/local/java/jdk1.6.0_15/bin:$PATH
JAVA_HOME=/usr/local/java/jdk1.6.0_15
JDK_HOME=/usr/local/java/jdk1.6.0_15
CATALINA_HOME=/usr/local/apache-tomcat-6.0.26
export CATALINA_HOME
export PATH
export JAVA_HOME
export JDK_HOME

case "$1" in
 start)
        if [ -f $CATALINA_HOME/bin/startup.sh ];
          then
     echo $"Starting Tomcat"
            /bin/su tomcat $CATALINA_HOME/bin/startup.sh
        fi
 ;;
 stop)
        if [ -f $CATALINA_HOME/bin/shutdown.sh ];
          then
     echo $"Stopping Tomcat"
            /bin/su tomcat $CATALINA_HOME/bin/shutdown.sh
        fi
  ;;
 *)
  echo $"Usage: $0 {start|stop}"
 exit 1
 ;;
esac

exit $RETVAL

Rotation du fichier de log Tomcat catalina.out

Extrait de la crontab mise en place :

DATE=`date "+%Y-%m-%d"`
# Rotation des log et purge des fichiers de plus de 30 jours (logrotate tourne *.log)
59 0 * * * cp -p /opt/tomcat/logs/catalina.out /opt/tomcat/logs/catalina.out.$DATE && echo -n > /opt/tomcat/logs/catalina.out && gzip /opt/tomcat/logs/catalina.out.$DATE
# Supp des fichiers de plus de 30 jours
0  2 * * * find /opt/tomcat/logs/ -mtime +30 -type f -exec rm -fr {} \;
  • cp -p : conserve les droit
  • echo -n : reinitialize le fichier de log courant
  • gzip : compression du log j-1

Version script que l’on peut mettre dans /etc/cron.daily par exemple

DATE=`date "+%Y-%m-%d"`
CATALINA_HOME=/usr/local/apache-tomcat-6.0.26

cp -p $CATALINA_HOME/logs/catalina.out $CATALINA_HOME/logs/catalina.out.$DATE && echo -n > $CATALINA_HOME/logs/catalina.out && gzip $CATALINA_HOME/logs/catalina.out.$DATE

find $CATALINA_HOME/logs/ -mtime +30 -type f -exec rm -fr {} \;