在 CentOS 上设置 WebLogic 定时任务的两种常用方式
方式一 Linux crontab 定时执行脚本
典型场景
快速示例
0 3 * * * /opt/scripts/webrestart.sh >> /var/log/webrestart.log 2>&1
0 2 * * * /opt/scripts/backup_weblogic.sh >> /var/log/backup_weblogic.log 2>&1
crontab -e # 编辑当前用户定时任务
crontab -l # 查看
systemctl status crond # 确认 crond 服务运行(CentOS 7/8)
脚本要点与示例
#!/bin/bash
set -e
export DOMAIN_HOME="/u01/app/weblogic/user_projects/domains/base_domain"
export LOG_DIR="$DOMAIN_HOME/logs"
LOG="$LOG_DIR/webrestart_$(date +%F).log"
echo "[$(date)] === 开始重启 ===" >> "$LOG"
# 1) 优雅停机(WLST 示例,按实际域与凭据调整)
"$DOMAIN_HOME/bin/stopWebLogic.sh" >> "$LOG" 2>&1 || true
# 2) 等待进程退出
for i in {1..30}; do
pgrep -f weblogic.Name=AdminServer >/dev/null || break
sleep 10
done
# 3) 强杀残留(谨慎)
PIDS=$(pgrep -f weblogic.Name=AdminServer || true)
if [[ -n "$PIDS" ]]; then
echo "[$(date)] 强制结束进程: $PIDS" >> "$LOG"
kill -9 $PIDS || true
fi
# 4) 启动(建议使用 nohup 或后台启动脚本)
cd "$DOMAIN_HOME"
nohup ./startWebLogic.sh >> "$LOG" 2>&1 &
echo "[$(date)] === 重启完成 ===" >> "$LOG"
#!/bin/bash
set -e
BACKUP_DIR="/opt/backup/weblogic"
DATE=$(date +%Y%m%d%H%M%S)
DOMAIN_DIR="/u01/app/weblogic/user_projects/domains/base_domain"
mkdir -p "$BACKUP_DIR"
zip -r "$BACKUP_DIR/domain_backup_$DATE.zip" "$DOMAIN_DIR" >> "$BACKUP_DIR/backup.log" 2>&1
# 保留最近 7 天
find "$BACKUP_DIR" -mtime +7 -type f -name "domain_backup_*.zip" -delete
方式二 在 WebLogic 内使用 JMX Timer Service
适用场景
核心步骤
适用性与优势
如何选择与注意事项
选择建议
稳定性与风险控制
以上两种方式可覆盖大多数在 CentOS 上对 WebLogic 的定时需求;若需要,我可以基于你的实际目录、端口与管理员账户,生成可直接使用的脚本与 crontab 条目。