温馨提示×

centos系统日志清理技巧

小樊
44
2025-08-24 20:54:07
栏目: 智能运维

以下是CentOS系统日志清理的常用技巧:

一、使用命令行工具

  1. journalctl命令

    • 清理所有日志,仅保留最近1周:
      journalctl --vacuum-time=1w
    • 清理指定服务的日志(如nginx):
      journalctl -u nginx --vacuum-time=1w
    • 查看日志占用空间:
      journalctl --disk-usage
  2. 手动清理

    • 清空单个日志文件:
      echo "" > /var/log/文件名truncate -s 0 /var/log/文件名
    • 删除特定时间前的日志(需谨慎):
      find /var/log -type f -name "*.log" -mtime +30 -exec rm {} \;

二、配置日志轮转(推荐)

  1. logrotate工具
    • 编辑配置文件(如/etc/logrotate.d/nginx):
      /var/log/nginx/*.log {  
        daily  
        rotate 7  
        compress  
        missingok  
        notifempty  
        create 0640 nginx nginx  
      }  
      
      • daily:按天轮转;rotate 7:保留7天日志;compress:启用压缩。
    • 手动触发轮转:
      logrotate -f /etc/logrotate.conf

三、自动化清理

  • 通过cron定时任务定期执行清理脚本,例如每天凌晨清理30天前的日志:
    1. 创建脚本/usr/local/bin/clean_logs.sh
      #!/bin/bash
      find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;
      
    2. 添加到crontab:
      0 0 * * * /usr/local/bin/clean_logs.sh

注意事项

  • 避免误删:清理前确认日志是否不再需要,系统关键日志(如/var/log/messages)建议保留。
  • 权限要求:操作需使用sudo或root权限。
  • 服务影响:清理正在写入的日志时,建议配合postrotate脚本重启服务(如Nginx)。

0