实现Weblogic服务进程监控及自动重启脚本

简介: Weblogic服务偶尔会挂掉,为了使weblogic能够在挂掉后第一时间能够重启,基于此背景下实现Weblogic进程监控及自动重启脚本,本文主要记录实现过程中遇到的问题及解决办法。

Weblogic服务器偶尔会挂掉,为了使weblogic能够在挂掉后第一时间能够重启,基于此背景下实现了Weblogic进程监控及自动重启脚本。

第一部分,Weblogic自动重启脚本如下:

#!/bin/sh
port1=8002
ipaddr1=192.168.1.4
currentDate=`date '+%Y-%m-%d %H:%M:%S'`

ps -aux | grep weblogic
sleep 3
port1Info1=`netstat -an|awk '{print $1, $4}' |sort -u| grep '[^0-9]'$port1'$' | grep ''$ipaddr1'' |wc -l`

if [ "$port1Info1" -eq "0" ];
then
  echo 'start'$port1' service.'
  nohup sh /data/weblogic/Oracle/Middleware/user_projects/domains/base_domain/restart_server1.sh
fi
exit 0

遇到的问题:当监控到weblogic进程不存在时,采用绝对路径启动失败;但手动执行监控脚本可正常判断当服务宕机时重启服务,部署到定时任务则无法启动,上述脚本的中的部分代码,如果部署到定时任务则无法自动重启:

nohup sh /data/weblogic/Oracle/Middleware/user_projects/domains/base_domain/restart_server1.sh

解决方法:必须切换到脚本所在的目录执行启动脚本,否则加入到系统定时任务中无法正常自动启动服务,如以下代码:

cd /data/weblogic/Oracle/Middleware/user_projects/domains/base_domain  nohup ./restart_server1.sh&

第二部分,实现了Weblogic监控及调用重启脚本如下:

#!/usr/bin/perl
@array_port = (
8891,
8892,
8893
);
$ipaddr1 = "10.3.40.214";

#$IPADDR=`ifconfig | grep 'inet addr' |sed 2,10d | cut -d: -f2| cut -d' ' -f1`;
#chop $IPADDR;

foreach $port (@array_port[0..$#array_port]){
 my $port1Info = `netstat -an|awk '{print \$1, \$4}' |sort -u| grep '[^0-9]$port\$' | grep '$ipaddr1' |wc -l`;
 chop $port1Info;
 print "$port -- $port1Info\n";
 if ($port1Info == "0"){
   print "start $port service.\n";
   $stat = `sh /data/monWeblogic.sh`;
   print "excute weblogic start script, start status: $stat\n";
 }
}
exit;
相关文章
|
2月前
|
监控 Linux 应用服务中间件
探索Linux中的`ps`命令:进程监控与分析的利器
探索Linux中的`ps`命令:进程监控与分析的利器
|
3月前
|
缓存 监控 调度
第六十一章 使用 ^PERFSAMPLE 监控进程 - 分析维度
第六十一章 使用 ^PERFSAMPLE 监控进程 - 分析维度
32 0
|
1月前
|
运维 Python Windows
如何通过Python脚本查找并终止占用指定端口的进程
在日常的开发和运维过程中,某些端口被意外占用是一个常见的问题。这种情况可能导致服务无法启动或冲突。本文将介绍如何通过Python脚本查找并终止占用指定端口的进程,以确保系统的正常运行。
|
1月前
|
Java Shell
通过端口杀掉进程的脚本
通过端口杀掉进程的脚本
14 0
|
3月前
|
安全 Linux 应用服务中间件
操作系统引导过程 与 服务进程的控制
操作系统引导过程 与 服务进程的控制
|
3月前
|
运维 监控 Ubuntu
Python实现ubuntu系统进程内存监控
Python实现ubuntu系统进程内存监控
38 1
|
3月前
|
监控
第六十章 使用 ^PERFSAMPLE 监控进程 - 预定义分析示例
第六十章 使用 ^PERFSAMPLE 监控进程 - 预定义分析示例
23 0
|
3月前
|
监控 Go
第五十九章 使用 ^PERFSAMPLE 监控进程 - 收集样本
第五十九章 使用 ^PERFSAMPLE 监控进程 - 收集样本
26 0
|
3月前
|
监控 Linux
linux监控指定进程
请注意,以上步骤提供了一种基本的方式来监控指定进程。根据你的需求,你可以选择使用不同的工具和参数来获取更详细的进程信息。
43 0
|
3月前
|
Java Shell
通过端口杀掉进程的脚本
通过端口杀掉进程的脚本
22 0