通过进程号或日志文件增长进行服务的重启

本文介绍了一个用于监控并自动重启Canal服务的Shell脚本。该脚本通过检查指定日志文件的最后修改时间来判断服务是否运行正常,并在服务异常时执行重启操作。此外,脚本还包含了周期性的健康检查机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/sh
serviceStatus(){
 command=`ps aux|grep $2 |grep $3 |grep -v "grep"`
   if [  "$command" == "" ]
   then
	#echo -e "\033[31m$1 not started \033[0m" 
	sh $4
	sleep 5
	sh $5
	echo "$(date "+%Y-%m-%d %H:%M:%S") :restart $1"
   #else
        #echo "$1 is started"
   fi

}

restart10(){
	 sh /opt/canalgroup26/canal10/bin/restart.sh
        sleep 5
        sh /opt/canalclient/bin/restartdb10.sh
	echo "restart db10"
}

restart20(){
        sh /opt/canalgroup26/canal20/bin/restart.sh
        sleep 5
        sh /opt/canalclient/bin/restartdb20.sh
	echo "restart db20"
}


checkdb10(){
echo "checkdb10"
a=`stat -c %Y /opt/canalgroup26/canal10/logs/db10/meta.log`;
b=`date +%s`;
if [ $[ $b - $a ] -gt 600 ];
then restart10;
else :;
fi
}

checkdb20(){
echo "checkdb20"
a=`stat -c %Y /opt/canalgroup26/canal20/logs/db20/meta.log`;
b=`date +%s`;
if [ $[ $b - $a ] -gt 600 ];
then restart20;
else :;
fi
}


while true

do
	echo "check canal status"
	#serviceStatus canalclient-db1 SimpleCanalClientWithSub  db10 /opt/canalgroup26/canal10/bin/restart.sh /opt/canalclient/bin/restartdb10.sh
	#serviceStatus canalclient-db2 SimpleCanalClientWithSub  db20 /opt/canalgroup26/canal20/bin/restart.sh /opt/canalclient/bin/restartdb20.sh
	checkdb10
	checkdb20
	sleep 3600
done

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值