#!/bin/bash
# Author: MichaelBibby <[email]michaelbibby@gmail.com[/email]>
# Date: 2007.06.19
# chkconfig: 345 78 78
# description: Normal RC script for SYBASE.
. /etc/init.d/functions
SYBASE_USERNAME="sa"
SYBASE_PASSWORD=""
export SYBASE_HOME='/opt/sybase-12.5'
export SYBASE_OCS='OCS-12_5'
export SYBASE_ASE='ASE-12_5'
# ************************************************
# Warnning: Modify the RUN_xxx to fit your need.
# Your startup script will be such as:
# ${SYBASE_HOME}/${SYBASE_ASE}/install/RUN_${SERVER}
# ${SYBASE_HOME}/${SYBASE_ASE}/install/RUN_${SERVER_BACKUP}
export SERVER='SYBASE'
export SERVER_BACKUP='SYB_BACKUP'
# For multi-server
# export SERVER='server1 server2'
# export SERVER_BACKUP='server1_backup server2_backup'
# ************************************************
export LIB="${SYBASE_HOME}/${SYBASE_OCS}/lib"
export PATH=$PATH:"${SYBASE_HOME}/${SYBASE_ASE}/bin:${SYBASE_HOME}/${SYBASE_ASE}/install:${SYBASE_HOME}/${SYBASE_OCS}/bin"
start_db()
{
su - sybase -c "${SYBASE_HOME}/${SYBASE_ASE}/install/startserver \
-f ${SYBASE_HOME}/${SYBASE_ASE}/install/RUN_${SERVER}"
su - sybase -c "${SYBASE_HOME}/${SYBASE_ASE}/install/startserver \
-f ${SYBASE_HOME}/${SYBASE_ASE}/install/RUN_${SERVER_BACKUP}"
}
stop_db()
{
${SYBASE_HOME}/${SYBASE_OCS}/bin/isql \
-U${SYBASE_USERNAME} \
-P${SYBASE_PASSWORD} \
-S${SERVER} <<EOF
shutdown ${SERVER_BACKUP}
go
exit
EOF
${SYBASE_HOME}/${SYBASE_OCS}/bin/isql \
-U${SYBASE_USERNAME} \
-P${SYBASE_PASSWORD} \
-S${SERVER} <<EOF
use master
go
checkpoint
go
shutdown
go
exit
EOF
if [ X"$?" == X"0" ]; then
exit 0
else
exit 1
fi
}
status_db()
{
chk_sybase=$(ps axw --cols 32768 | grep dataserver | grep -v grep | wc -l)
if [ X"$chk_sybase" = X"0" ]
then
echo -n "Checking Master Server: ${SERVER}"
echo_failure
echo
else
echo -n "Checking Master Server: ${SERVER_BACKUP}" && echo_success
fi
chk_sybase_bs=$(ps axw --cols 32768 | grep backupserver | grep -v grep | wc -l)
if [ X"$chk_sybase_bs" = X"0" ];then
echo -n "Checking Backup Server: ${SERVER_BACKUP}"
echo_failure
echo
else
echo -n "Checking Backup Server: ${SERVER_BACKUP}" && echo_success
fi
exit 0
}
case $1 in
start) start_db ;;
stop)
ps aux | grep -i dataserver | grep -v grep >/dev/null
if [ X"$?" == X"0" ]; then
stop_db
else
exit 0
fi
;;
status) status_db ;;
*) echo "USAGE: $0 [start|stop|status]" ;;
esac