在CentOS上可使用logrotate
工具切割Java日志,步骤如下:
安装logrotate
sudo yum install logrotate -y
创建配置文件
在/etc/logrotate.d/
下新建文件(如java-logs
),内容示例:
/path/to/java/logs/*.log {
daily # 按天切割(可改为size 100M按大小切割)
rotate 7 # 保留7天日志
compress # 压缩旧日志
missingok # 忽略丢失文件
notifempty # 空文件不切割
create 0640 root root # 新日志权限
postrotate
/bin/kill -USR1 $(cat /path/to/java/logs/java.pid) # 通知Java进程重载日志
endscript
}
daily
:按天切割;size 100M
:按文件大小切割(如100MB)。postrotate
:切割后执行命令,需替换为实际Java进程的PID文件路径。手动测试配置
sudo logrotate -f /etc/logrotate.d/java-logs # 强制立即执行
设置定时任务
logrotate默认通过/etc/cron.daily/logrotate
每日自动执行,无需额外配置。
说明:
rotate
(保留数量)、compress
(压缩)、dateext
(日期后缀)等。/etc/cron.daily/logrotate
复制到/etc/cron.hourly/
并重启cron服务。