/var/log 分区使用率过高(当前总占用已达约 50GB)的问题,这通常是由于系统或组件日志长期未清理导致的。rm -rf 删除。直接删除会导致进程依然持有该文件的句柄,磁盘空间不会真正释放,甚至可能引发服务崩溃。正确的做法是使用重定向清空(如 echo > /path/to/file)或使用 truncate 命令截断文件。echo > /var/log/messages
# 或者如果文件被锁定了只读属性,可以先解锁再清空并重新锁定:
chattr -a /var/log/messages && echo > /var/log/messages && chattr +a /var/log/messagesecho > /var/log/h3cloudcoreecho > /var/log/keystoneecho > 或 truncate -s 0 命令清空。.gz 或 .xz 等压缩格式的旧日志包,可以直接使用 rm -rf 删除,因为它们不再被进程占用。)/etc/logrotate.conf 以及 /etc/logrotate.d/ 目录下的配置文件。确保对 messages、keystone.log 等大文件设置了合理的轮转周期(如每日轮转)、保留天数(如保留 7 天)以及开启 compress(gzip 压缩存储),避免单一日志无限增长。/var/log 分区使用率超过 80% 时自动触发告警或执行清理动作。
rm -rf删除正在写入日志,删完不释放空间、平台服务报错;清空统一用 > 日志文件 安全清空,业务不中断。chattr -a解锁,清空再加锁
⚠️ journal 日志:不能重定向清空,只用专属命令清理
⚠️ MySQL binlog:数据库内命令清理,不可直接删文件#1 清理最大日志messages(解锁-清空-加锁)
chattr -a /var/log/messages
> /var/log/messages
chattr +a /var/log/messages
#2 批量清空平台业务日志
> /var/log/h3cloudcore;> /var/log/keystone;> /var/log/adm_messages;> /var/log/fwblacklist;> /var/log/warn
#3 规整journal日志,仅保留500M
journalctl --vacuum-size=500M
#4 清空mysql错误日志
> /var/log/mysql/error.log
#5 数据库清理过期binlog、设置自动7天过期
mysql -uroot -p
PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 7 DAY);
SET GLOBAL expire_logs_days = 7;
exit
df -h /var/log核对空间,排查日志高频报错根源暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论