通过命令行直接删除指定目录下的日志文件,适用于紧急清理。
servers子目录下(如/user_projects/domains/your_domain/servers/AdminServer/logs),主要包含server.log(服务器运行日志)、access.log(HTTP访问日志)等。# 删除所有服务器下的日志文件(谨慎使用,建议先备份)
rm -rf $DOMAIN_HOME/servers/*/logs/*
# 若需保留最近7天的日志,可结合find命令(例如删除7天前的.log文件)
find $DOMAIN_HOME/servers/*/logs -name "*.log" -mtime +7 -exec rm -f {} \;
server.log可能导致日志断裂,建议先停止服务或使用cat /dev/null > server.log清空文件(不影响服务运行)。通过日志轮转工具(如logrotate)定期分割、压缩和删除旧日志,避免日志文件无限增长。
sudo yum install logrotate -y
/etc/logrotate.d/目录下创建weblogic文件,添加以下内容(根据实际情况调整路径):/path/to/weblogic/domain/logs/*.log {
daily # 每天轮转一次
rotate 7 # 保留7个轮转后的日志文件
compress # 压缩旧日志(节省空间)
missingok # 若日志文件不存在,不报错
notifempty # 若日志为空,不轮转
create 640 root adm # 新日志文件权限(属主root,属组adm)
sharedscripts # 所有日志轮转完成后执行postrotate脚本
postrotate
# 向WebLogic进程发送HUP信号,使其重新打开日志文件
if [ -f /path/to/weblogic/domain/logs/server.log ]; then
kill -HUP $(cat /path/to/weblogic/domain/logs/server.pid)
fi
endscript
}
sudo logrotate -f /etc/logrotate.d/weblogic
/var/log/logrotate.log,确认轮转过程无错误。利用WebLogic管理控制台调整日志轮转策略,无需修改配置文件,更直观。
http://服务器IP:7001/console)。By Size)或“按时间”(By Time)。
旋转文件大小(如500MB),达到阈值后自动轮转。开始轮转时间(如00:00)和轮转间隔(如每天、每周)。server_%yyyy%_%MM%_%dd%.log),便于归档。通过crontab设置定时任务,定期执行清理脚本,实现无人值守管理。
/home/weblogic/scripts/clean_weblogic_logs.sh):#!/bin/bash
# 定义日志目录
LOG_DIR=/user_projects/domains/your_domain/servers/*/logs
# 删除30天前的.log文件
find "$LOG_DIR" -name "*.log" -mtime +30 -exec rm -f {} \;
# 清空当前日志文件(避免文件过大)
find "$LOG_DIR" -name "*.log" -exec sh -c 'cat /dev/null > {}' \;
chmod +x /home/weblogic/scripts/clean_weblogic_logs.sh
crontab -e
添加以下内容:0 2 * * * /home/weblogic/scripts/clean_weblogic_logs.sh >> /var/log/weblogic_clean.log 2>&1
tail -f /var/log/weblogic_clean.log监控清理情况。server.log),防止误删导致问题排查困难。kill -HUP或清空文件(cat /dev/null > file),而非直接删除。