温馨提示×

linux tomcat日志如何备份

小樊
33
2026-10-23 04:03:06
栏目: 智能运维

在 Linux 下对 Tomcat 日志进行备份,常见且实用的做法有以下几种,按「简单 → 自动化」递进说明。


一、手动备份(临时/一次性)

Tomcat 日志默认在:

$TOMCAT_HOME/logs/

常见日志文件:

  • catalina.out
  • catalina.2024-01-01.log
  • localhost.log
  • access_log_*

示例:打包备份

cd /opt/tomcat/logs
tar czf tomcat-logs-$(date +%F).tar.gz *.log *.txt

备份到其他目录:

cp tomcat-logs-2026-01-21.tar.gz /backup/

二、日志轮转(推荐,防止日志过大)

1️⃣ 使用 logrotate(最推荐)

编辑配置

vim /etc/logrotate.d/tomcat

示例配置

/opt/tomcat/logs/catalina.out {
    daily
    rotate 7
    missingok
    notifempty
    compress
    copytruncate
}

说明:

  • copytruncate:不重启 Tomcat 直接截断日志(✅关键)
  • rotate 7:保留 7 天
  • compress:压缩旧日志

手动测试

logrotate -d /etc/logrotate.d/tomcat   # 测试
logrotate -f /etc/logrotate.d/tomcat   # 强制执行

三、定时自动备份(cron)

示例:每天凌晨备份

crontab -e

添加:

0 0 * * * tar czf /backup/tomcat-logs-$(date +\%F).tar.gz /opt/tomcat/logs/*.log

查看:

crontab -l

四、备份并清理旧日志(完整脚本)

#!/bin/bash
LOG_DIR=/opt/tomcat/logs
BACKUP_DIR=/backup/tomcat
DATE=$(date +%F)

mkdir -p $BACKUP_DIR
tar czf $BACKUP_DIR/tomcat-logs-$DATE.tar.gz $LOG_DIR/*.log

# 删除 30 天前的备份
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete

赋予权限:

chmod +x backup_tomcat.sh

加入 cron:

0 1 * * * /path/backup_tomcat.sh

五、Docker / 容器 Tomcat(补充)

如果是 Docker:

docker cp tomcat:/usr/local/tomcat/logs ./logs-backup

或挂载卷:

-v /host/logs:/usr/local/tomcat/logs

六、最佳实践建议

✅ 使用 logrotate + copytruncate
✅ 定期备份到异地/NAS
✅ 保留周期 7~30 天
❌ 不要直接删除 catalina.out(可能写入失败)


如果你愿意,我可以:

  • 给你 完整 logrotate 示例
  • 针对 CentOS / Ubuntu 具体配置
  • 或帮你写 一键备份脚本

你现在的 Tomcat 是 物理机 / 虚拟机 / Docker?

0 踩