centos

CentOS日志清理的步骤是什么

小樊
34
2025-08-10 16:03:45
栏目: 智能运维

CentOS日志清理主要有以下三种方法及步骤:

一、使用journalctl命令(推荐)

适用场景:清理systemd管理的系统日志(如/var/log/journal/下的日志)。
步骤

  1. 查看日志
    journalctl --查看所有日志
    journalctl -u 服务名 --查看特定服务日志(如`journalctl -u nginx`)
    
  2. 清理旧日志
    # 保留最近7天的日志(删除7天前的日志)
    journalctl --vacuum-time=7d
    # 保留500MB的日志(删除超出部分)
    journalctl --vacuum-size=500M
    

二、手动删除日志文件

适用场景:清理/var/log/目录下的特定日志文件。
步骤

  1. 查看日志文件
    ls -l /var/log/ --查看日志文件列表
    
  2. 删除文件
    # 清空单个日志文件(如access_log)
    cat /dev/null > /var/log/httpd/access_log
    # 删除特定日志文件(谨慎操作,建议先备份)
    sudo rm /var/log/old_log_file.log
    # 删除30天前的日志文件(批量操作)
    find /var/log/ -type f -name "*.log" -mtime +30 -exec rm {} \;
    

三、使用logrotate工具(自动化管理)

适用场景:定期轮转、压缩和删除日志(如Nginx、Apache等应用日志)。
步骤

  1. 安装工具(如未安装):
    sudo yum install logrotate -y
    
  2. 配置规则
    • 编辑配置文件(如/etc/logrotate.d/nginx):
      /var/log/nginx/*.log {
          daily       # 每天轮转
          rotate 7    # 保留7天日志
          compress    # 压缩旧日志
          missingok   # 忽略缺失文件
          notifempty  # 空日志不轮转
          copytruncate # 清空原文件而非删除(适用于正在写入的日志)
      }
      
  3. 手动触发或定时执行
    # 手动立即执行轮转
    sudo logrotate -f /etc/logrotate.d/nginx
    # 查看定时任务(默认通过cron每日执行)
    cat /etc/cron.daily/logrotate
    

注意事项

以上方法可根据实际需求选择,优先使用journalctllogrotate实现自动化管理。

0
看了该问题的人还看了