温馨提示×

Ubuntu怎么恢复Tomcat日志

小樊
46
2026-08-05 15:04:57
栏目: 智能运维

在 Ubuntu 上“恢复 Tomcat 日志”通常分几种情况,不同情况做法不一样。下面按最常见场景给你一个完整说明。


一、Tomcat 日志在哪(先确认)

Tomcat 默认日志目录是:

/opt/tomcat/logs/
# 或
/var/log/tomcat*/

常见日志文件:

文件 说明
catalina.out 主日志(最常用)
catalina.2025-01-21.log 按日期
localhost.log 应用日志
host-manager.log 管理日志
access_log_*.txt 访问日志

二、Tomcat 日志被误删了(最常见)

✅ 情况 1:Tomcat 还在运行(可以恢复

如果 Tomcat 没重启,日志文件虽然被删,但文件句柄还在内存中

1️⃣ 查找 Tomcat 进程

ps aux | grep tomcat

jps

2️⃣ 找到被删除但仍打开的日志

lsof | grep deleted | grep catalina

你会看到类似:

java  12345  /opt/tomcat/logs/catalina.out (deleted)

3️⃣ 通过 /proc 恢复

ls -l /proc/12345/fd | grep catalina

找到 fd 编号,比如 42

cp /proc/12345/fd/42 /opt/tomcat/logs/catalina.out

✅ 恢复成功!

⚠️ Tomcat 一旦重启,就再也无法这样恢复了



三、日志是“自动被清理/轮转了”

情况 2:被 logrotate 自动删除

Ubuntu 默认会轮转 Tomcat 日志:

cat /etc/logrotate.d/tomcat*

如果你看到:

rotate 7

说明只保留 7 天。

✅ 恢复方式:

  • 如果有备份:从备份恢复
  • 如果没有备份:基本无法恢复(除非用数据恢复工具)

四、日志没生成(不是被删)

常见原因

  1. Tomcat 没启动
  2. 权限不足
  3. logging.properties 被改坏

✅ 快速排查

systemctl status tomcat
ls -ld /opt/tomcat/logs

权限应该是:

drwxr-x--- tomcat tomcat logs

修复权限:

sudo chown -R tomcat:tomcat /opt/tomcat/logs
sudo chmod 750 /opt/tomcat/logs

五、防止以后再丢日志(强烈建议)

✅ 1. 关闭 catalina.out 无限增长

修改 conf/logging.properties

handlers = 1catalina.org.apache.juli.AsyncFileHandler

或使用 logrotate

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

✅ 2. 定期备份日志

rsync -av /opt/tomcat/logs/ /backup/tomcat-logs/

六、总结(快速判断)

场景 能否恢复
Tomcat 正在运行 + 日志被删 ✅ 可恢复
Tomcat 已重启 ❌ 不可恢复
被 logrotate 清理 ❌ 除非有备份
日志没生成 ✅ 修配置即可

如果你愿意,可以把下面信息发我,我可以精确告诉你该怎么做

  1. Ubuntu 版本
  2. Tomcat 版本
  3. 日志是 catalina.out 还是别的
  4. 是“突然没了”还是“一直没生成”

我可以直接给你一套可复制执行的命令

0