/usr/local/apache-tomcat-9.0.71/logs/catalina.out占用了118G

找到了!真正的“空间黑洞”就是:

📁 **/usr/local/apache-tomcat-9.0.71/logs/catalina.out —— **一个 118GB 的 Tomcat 日志文件!

这是非常典型的 Tomcat 日志未轮转导致磁盘爆满 的问题。


✅ 立即释放空间:清空 catalina.out

🔥 安全清空日志(不中断 Tomcat 服务):

> /usr/local/apache-tomcat-9.0.71/logs/catalina.out

✅ 这条命令会清空文件内容但保留文件句柄,Tomcat 进程可以继续写入,服务完全不受影响

或者(等效):

truncate -s 0 /usr/local/apache-tomcat-9.0.71/logs/catalina.out

📊 清理后验证

# 查看日志是否已清空
ls -lh /usr/local/apache-tomcat-9.0.71/logs/catalina.out

# 查看磁盘空间是否释放
df -h

你应该会看到:

  • catalina.out 大小变为 0
  • / 分区可用空间从 ~458M 增加到 100GB+

🔒 防止再次爆盘:配置 Tomcat 日志轮转

✅ 方法1:使用 logrotate(推荐)

创建配置文件:

cat > /etc/logrotate.d/tomcat <<EOF
/usr/local/apache-tomcat-9.0.71/logs/catalina.out {
    copytruncate
    daily
    rotate 7
    compress
    missingok
    size 100M
}
EOF
  • copytruncate:先复制日志再清空原文件,避免 Tomcat 写入中断
  • size 100M:当日志超过 100MB 就轮转
  • rotate 7:保留最近 7 个日志文件
  • compress:自动压缩旧日志(.gz)

✅ 方法2:禁用 catalina.out(可选)

如果你不需要标准输出日志,可以在 Tomcat 启动脚本中重定向到 /dev/null

编辑 bin/catalina.sh(不推荐直接改,建议通过 setenv.sh):

# 创建 setenv.sh(Tomcat 会自动加载)
echo 'CATALINA_OUT="/dev/null"' > /usr/local/apache-tomcat-9.0.71/bin/setenv.sh
chmod +x /usr/local/apache-tomcat-9.0.71/bin/setenv.sh

⚠️ 但这样会丢失 startup/shutdown 日志,一般建议用 logrotate 而非禁用


🧹 补充建议

  1. 检查其他日志文件

    ls -lh /usr/local/apache-tomcat-9.0.71/logs/
    

    如果 localhost_access_log.*.txt 很大,也可考虑在 conf/server.xml 中关闭访问日志(或限制)。

  2. 重启 Tomcat(非必须)
    清空 catalina.out不需要重启,但如果你刚配置了 logrotate,可等一天看是否生效。

  3. 监控磁盘

    # 添加一个 cron 每天检查
    echo "0 2 * * * df -h | mail -s 'Disk Usage' your@email.com" | crontab -
    

✅ 总结操作(复制粘贴即可)

# 1. 清空大日志
> /usr/local/apache-tomcat-9.0.71/logs/catalina.out

# 2. 配置自动轮转
cat > /etc/logrotate.d/tomcat <<EOF
/usr/local/apache-tomcat-9.0.71/logs/catalina.out {
    copytruncate
    daily
    rotate 7
    compress
    missingok
    size 100M
}
EOF

# 3. 验证
df -h
ls -lh /usr/local/apache-tomcat-9.0.71/logs/catalina.out

完成以上操作后,你的磁盘空间将立即释放 118GB+,系统恢复正常!
并且未来再也不会因 Tomcat 日志爆盘。

🎉 问题解决!

### 自动化部署Tomcat并启动Web应用 为了通过SSH在远程服务器上部署Tomcat并启动Web应用,同时验证Tomcat是否成功启动,可以按照以下步骤进行操作: #### 1. 准备环境 确保远程服务器上已安装Java和SSH服务,并且可以通过SSH进行连接。此外,确保服务器上没有运行其他占用8080端口的服务。 #### 2. 下载并解压Tomcat 可以通过SSH连接到远程服务器,并下载Tomcat二进制文件。以下是一个示例脚本片段,用于下载和解压Tomcat: ```bash # 下载Tomcat wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.62/bin/apache-tomcat-9.0.62.tar.gz # 解压Tomcat tar -xvzf apache-tomcat-9.0.62.tar.gz ``` #### 3. 配置Tomcat 根据需要配置Tomcat的`server.xml`和其他相关文件,以适应特定的应用需求。例如,可以在`server.xml`中修改端口号或其他配置参数。 #### 4. 部署Web应用 将Web应用的WAR文件上传到Tomcat的`webapps`目录中,Tomcat会在启动时自动部署该应用。 ```bash # 将Web应用的WAR文件复制到Tomcat的webapps目录 cp your-webapp.war /path/to/tomcat/webapps/ ``` #### 5. 启动Tomcat 启动Tomcat服务,并确保其在8080端口上监听。 ```bash # 启动Tomcat /path/to/tomcat/bin/startup.sh ``` #### 6. 验证Tomcat是否成功启动 可以通过检查Tomcat的日志文件或使用`netstat`命令来验证Tomcat是否成功启动并在8080端口上监听。 ```bash # 检查Tomcat日志 tail -f /path/to/tomcat/logs/catalina.out # 检查8080端口是否监听 netstat -tuln | grep 8080 ``` 如果看到类似以下输出,则表示Tomcat已经成功启动: ``` tcp6 0 0 :::8080 :::* LISTEN ``` ### 自动化脚本示例 以下是一个完整的自动化脚本示例,用于通过SSH连接到远程服务器并执行上述步骤: ```bash #!/bin/bash # 远程服务器的IP地址 REMOTE_SERVER="your.remote.server.ip" # SSH用户名 SSH_USER="your-ssh-user" # Tomcat的安装路径 TOMCAT_PATH="/opt/tomcat" # Web应用的WAR文件路径 WAR_FILE="/path/to/your-webapp.war" # 通过SSH连接到远程服务器并执行命令 ssh ${SSH_USER}@${REMOTE_SERVER} << EOF # 下载Tomcat wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.62/bin/apache-tomcat-9.0.62.tar.gz # 解压Tomcat tar -xvzf apache-tomcat-9.0.62.tar.gz -C /opt/ # 将Web应用的WAR文件复制到Tomcat的webapps目录 cp ${WAR_FILE} ${TOMCAT_PATH}/webapps/ # 启动Tomcat ${TOMCAT_PATH}/bin/startup.sh # 检查Tomcat日志 tail -f ${TOMCAT_PATH}/logs/catalina.out # 检查8080端口是否监听 netstat -tuln | grep 8080 EOF ``` ### 注意事项 - 确保远程服务器的防火墙允许8080端口的入站连接。 - 在生产环境中,建议使用更安全的方法来处理密码和敏感信息,例如使用SSH密钥认证。 - 可以根据需要调整Tomcat的配置文件,以优化性能和安全性。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值