在 CentOS 上设置 WebLogic 定时任务的两种常用方式

方式一 Linux crontab 定时执行脚本
典型场景
快速示例
0 3 * * * /opt/scripts/webrestart.sh >> /var/log/webrestart.log 2>&10 2 * * * /opt/scripts/backup_weblogic.sh >> /var/log/backup_weblogic.log 2>&1crontab -e# 编辑当前用户定时任务crontab -l# 查看systemctl status crond # 确认 crond 服务运行(CentOS 7/8)脚本要点与示例
#!/bin/bashset -eexport 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}; dopgrep -f weblogic.Name=AdminServer >/dev/null || breaksleep 10done# 3) 强杀残留(谨慎)PIDS=$(pgrep -f weblogic.Name=AdminServer || true)if [[ -n "$PIDS" ]]; thenecho "[$(date)] 强制结束进程: $PIDS" >> "$LOG"kill -9 $PIDS || truefi# 4) 启动(建议使用 nohup 或后台启动脚本)cd "$DOMAIN_HOME"nohup ./startWebLogic.sh >> "$LOG" 2>&1 &echo "[$(date)] === 重启完成 ===" >> "$LOG"#!/bin/bashset -eBACKUP_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 条目。