centos 清空log日志

centos 清空log日志
最新回答
爱咳嗽就喝急支糖浆

2020-07-21 21:43:59

CentOS清空日志需分安全清空内容、删除旧日志、长期管理三步,核心是不破坏文件属性或服务依赖


一、安全清空日志文件内容(推荐)
若需保留日志文件但清空内容(不影响服务读写),常用命令如下(需root权限):
1. 重定向空设备:`> /var/log/[日志文件]`(如`> /var/log/messages`),直接将空内容写入文件,不改变inode和权限。
2. cat空设备:`cat /dev/null > /var/log/[日志文件]`,原理同重定向,兼容性更强。
3. truncate命令:`truncate -s 0 /var/log/[日志文件]`,将文件大小截断为0,适合大文件快速处理。
4. cp空设备:`cp /dev/null /var/log/[日志文件]`,覆盖文件内容,需注意权限。


二、删除旧日志文件(需谨慎)
仅建议删除已轮转的旧日志(如`.1`/`.2`后缀文件),步骤:
1. 停止相关服务:`systemctl stop rsyslog`(避免服务仍在写入日志)。
2. 删除旧文件:`rm /var/log/[日志文件].[数字]`(如`rm /var/log/messages.1`)。
3. 重启服务:`systemctl start rsyslog`,确保服务重新生成日志。


三、长期日志管理(避免重复清理)
通过`logrotate`工具自动轮转清理,配置步骤:
1. 编辑配置文件:`vim /etc/logrotate.d/[服务名]`(如`rsyslog`)。
2. 添加核心参数:
• `daily`:每日轮转;
• `rotate 7`:保留最近7个备份;
• `compress`:压缩旧日志;
• `missingok`:忽略空文件;
• `notifempty`:不轮转空文件。
3. 手动测试:`logrotate -f /etc/logrotate.conf`,验证配置是否生效。


四、注意事项
1. 禁止直接删除实时日志文件(如`messages`/`syslog`),否则服务可能无法写入新日志。
2. 清理前可备份重要日志:`cp /var/log/[日志文件] /tmp/[备份名]`。
3. 若磁盘空间紧张,优先用`du -sh /var/log/*`查看大文件,针对性清理。


正确性标签: