在天翼云的一台centos服务器上部署的weblogic12C,通过nginx访问, 执行一段时间后(有时是一天,有时是两天)cpu占用过高,高达400% weblogic出现假死现象,即不报错也无法访问,查看进程也没有异常进程,只有weblogic进程导致cpu过高,重启weblogic后可以正常访问,连续的系统无法访问导致客户意见很大,在未查明原因之前,只能使用定时重启的笨方式缓解客户与客户之间的关系。过程如下,有些sheel语法也不甚明了,从网上摘抄的,好在一次就成功了,目前运行了3天能看到每天凌晨3点的启动日志。同时解决了不停的向一个文件里面写日志可能会导致日志文件过大的问题。
1.配置任务计划 每天凌晨三点执行webrestart.sh 重启weblogic
crontab -e
00 03 * * * sh /root/webrestart.sh
2.编辑webrestart.sh 内容如下:
#!/bin/bash
today_date=$(date +%F)
node_pid=$(netstat -antulp | grep 7001 | grep LISTEN | awk -F'[ /]+' '{print $(NF-2)}')
for i in ${node_pid[@]}
do
node_home=$(ls -l /proc/$i/cwd | awk '{print $NF}')
cd $node_home
kill $i
done
nohup ./startWebLogic.sh >> $(date +%F).log 2>&1 &
sheel解