悠悠秦淮

[2008年4月23日星期三]

转载__复制服务器的监控脚本

原文地址:http://www.chinaunix.net/jh/21/1030139.html
http://www.chinaunix.net 作者:unixer123 发表于:2008-01-09 17:44:39


写了一个复制服务器的监控脚本, 放在crontab中, 首先监控repserver,rsm是否正常运行,如果down掉, 则重新启动进程
否则, 继续执行admin who_is_down语句, 将输出结果放到一个文件中, 逐行分析时候是否存在指定的复制关系, 有的话
则形成resume connection to "复制关系“的语句, 然后执行此语句。
#!/bin/ksh

HOME_DIR=/export/home/sybaserep
LD_LIBRARY_PATH=/export/home/sybaserep/OCS-12_5/lib:/export/home/sybaserep/OCS-12_5/lib3p:
export HOME_DIR LD_LIBRARY_PATH

PROCESS_LIST=$HOME_DIR/script/process_list
LOG=$HOME_DIR/script/log
TMPFILE=$HOME_DIR/script/tmpfile
REP_CONN_LIST=$HOME_DIR/script/rep_conn_lst

DOWN="NO"

while read LINE
do
ps -ef | grep `echo $LINE | awk '{print $1}'` | grep -v grep
if [ "$?" = 0 ]
then
DOWN = "YES"
process_name=`echo $LINE | awk '{print $1}'`
echo "$process_name failed at `date`" >> $LOG
start_process=`echo $LINE | awk '{print $2" "$3}'`
$start_process
echo "$process_name restart at `date`" >> $LOG
echo "--------------------------------" >> $LOG
sleep 60
fi
done < $PROCESS_LIST

if [ $DOWN = "YES" ]
then
exit 1
fi

eval $HOME_DIR/OCS-12_5/bin/isql -Usa -Pxxxxxxxx -Sxxxxxxxx -i$HOME_DIR/script/getdown.sql > $TMPFILE

while read REP_CONN
do
cat $TMPFILE | grep $REP_CONN
echo "cat" >> $LOG
if [ "$?" != 0 ]
then
sql="resume connection to $LINE"
echo $sql > $TMP_DIR/script/resume.sql
echo "go" >> $TMP_DIR/script/resume.sql
eval $HOME_DIR/OCS-12_5/bin/isql -Usa -Pxxxxxxxx -Sxxxxxxxx -i$HOME_DIR/script/resume.sql >> $LOG
sleep 30
fi
done < $REP_CONN_LIST

date >> $LOG

0 评论:

发表评论