Autostart Tomcat

Memikirkan gimana caranya, supaya tomcat server POIN PLUS-PLUS nya indosat kalo mati bisa nyala sendiri,
setelah berkutak-katik dengan shellscript. aku telah menemukan coding yang pas, dan semoga bisa diimplementasikan untuk semua tomcat, yang kita butuhkan cuman shell, crontab dan direktori log sebagai penyimpan log.

Langkah awal buat shell script dengan nama autostarttomcat.sh sebagai berikut :

#!/bin/sh

# Author : Mas’ud Ulum
# Company : PT. Sisindokom Lintas Buana
# Project : ILP (Indosat Loyalty Program) a.k.a Poin Plus Plus
# Date Written : Sept, 8 2006

export JAVA_HOME=/usr/local/java
export TOMCAT_HOME=/usr/local/tomcat
export CATALINA_HOME=/usr/local/tomcat

LOG_DIR=/ILP/log
TOMCAT_PORT=8080
USER=ilp
MAXCHECKCONN=5

i=0

while true
do
conn=`netstat -na| grep $TOMCAT_PORT | grep ESTABLISHED |wc -l`
if [ $conn -eq 0 ]
then
i=`expr $i + 1`
if [ $i -gt $MAXCHECKCONN ]
then
DATE=`date +%Y%m%d%H%M`
echo “[”$DATE”] Shutdown tomcat”
if $TOMCAT_HOME/bin/shutdown.sh
then
DATE=`date +%Y%m%d%H%M`
echo “[”$DATE”] Shutdown tomcat sucessfully”
fi

ps -ef | grep java | grep $USER | grep $TOMCAT_HOME > /tmp/a
exec 3<&0
exec 0<"/tmp/a"
read PID1 PID PID2
exec 0<&3
rm /tmp/a

if test -f $TOMCAT_HOME/logs/catalina.out
then
DATE=`date +%Y%m%d%H%M`
echo “[”$DATE”] Backup catalina.out”
gzip -f $TOMCAT_HOME/logs/catalina.out
mv -f $TOMCAT_HOME/logs/catalina.out.gz $LOG_DIR/catalina_”$DATE”.gz
fi

if echo $PID1 | grep $USER
then
if kill -9 $PID
then
DATE=`date +%Y%m%d%H%M`
echo “[”$DATE”] Shutdown tomcat PID=$PID succesfully”
else
DATE=`date +%Y%m%d%H%M`
echo “[”$DATE”] Shutdown failed, no such process”
fi
else
DATE=`date +%Y%m%d%H%M`
echo “[”$DATE”] No such tomcat process”
fi

DATE=`date +%Y%m%d%H%M`
echo “[”$DATE”] Startup tomcat”
$TOMCAT_HOME/bin/startup.sh
break
fi
else
DATE=`date +%Y%m%d%H%M`
echo “[”$DATE”] Ga perlu shutdown tomcat”
break
fi
done

langkah kedua, buat shell script lagi yang akan dijalankan di crontab dan sebagai penyimpan log crontab tersebut
simpan dengan nama cron_autostarttomcat.sh

#!/bin/sh

LOGDIR=/ILP/log/autoTomcat
DATE=`date +%Y%m%d`
APPDIR=/home/ilp

$APPDIR/autostarttomcat.sh >> $LOGDIR/auto_”$DATE”.log
#copy code diatas jika ternyata shell script lebih dari 1
#misal :
#$APPDIR/autostarttomcat1.sh >> $LOGDIR/auto1_”$DATE”.log
#$APPDIR/autostarttomcat2.sh >> $LOGDIR/auto2_”$DATE”.log

Langkah ketiga, jika kedua shellscript diatas dibuat, buat crontab list sebagai scheduler yang akan dijalankan tiap 1 menit.

misal dengan nama cronlist.txt

*/1 * * * * /home/ilp/cron_autostarttomcat.sh

INGAT!! hati-hati /home/ilp sesuai dengan direktori file cron_autostarttomcat.sh berada

setelah smua ada, jalankan crontab dengan perintah :

$ crontab cronlist.txt
$ crontab -l
*/1 * * * * /home/ilp/cron_autostarttomcat.sh

autostarttomcat anda siap beroperasi. oh ya shell script diatas jika tomcat anda mempunyai hit yang tinggi dan hanya aktif 1 tomcat, jika hit anda rendah sesuaikan variabel MAXCHECKCONN. semakin rendah hit anda, semakin tinggi MAXCHECKCONN, dan untuk mendapatkan hasil yang optimal. silahkan dicoba-coba sendiri value dari MAXCHECKCONN tersebut. jika ternyata pengen lebih dari 1 tomcat, buat shellscript berlainan dan sesuaikan variabel TOMCAT_PORT nya. misal autostarttomcat1.sh, autostarttomcat2.sh.

disclaimer : Running source code diatas, bukan tanggung jawab pembuat source code dan penulis tidak bertanggung jawab jika ternyata server anda bermasalah karena source code tersebut.

Belum Ada Komentar.

Tinggalkan pesan