温馨提示×

Linux清理系统日志的步骤

小樊
100
2025-08-02 03:47:28
栏目: 智能运维

在Linux系统中,清理系统日志是一个重要的维护任务,有助于释放磁盘空间并保护系统安全。以下是清理系统日志的步骤:

1. 传统日志清理(/var/log)

配置 logrotate

  • 创建配置文件
    sudo nano /etc/logrotate.d/custom_logs
    
  • 添加以下内容
    /var/log/*.log {
        size=10M            # 当日志达到10M时进行轮换
        rotate 2            # 保留2个归档文件
        compress           # 压缩旧的日志文件
        missingok         # 如果日志丢失,不报错
        notifempty        # 如果日志为空,不轮换
        create 0644 root root  # 创建新日志文件的权限和所有者
        dateext           # 使用日期作为归档文件的扩展名
    }
    

创建清理脚本

  • 创建清理脚本文件
    sudo nano /usr/local/bin/cleanup_logs.sh
    
  • 添加以下内容
    #!/bin/bash
    # 删除7天前的压缩日志文件
    find /var/log -name "*.gz" -type f -mtime +7 -delete
    # 删除30天前的日志文件
    find /var/log -name "*.log.*" -type f -mtime +30 -delete
    # 清空大于50M的当前日志文件
    for logfile in $(find /var/log -type f -size +50M); do
        echo "" > "$logfile"
    done
    # 强制执行日志轮换
    sudo logrotate -f /etc/logrotate.conf
    

强制执行日志轮换

sudo logrotate -f /etc/logrotate.conf

2. Systemd 日志清理

修改配置文件

  • 编辑 journald 配置
    sudo nano /etc/systemd/journald.conf
    
  • 添加以下配置
    [Journal]
    SystemMaxUse=100M      # 日志总体积上限
    SystemMaxFileSize=20M  # 单个日志文件大小上限
    MaxRetentionSec=2592000  # 日志保留时间(30天)
    Compress=yes           # 启用压缩
    Storage=persistent     # 持久化存储
    ForwardToSyslog=yes    # 转发到 syslog
    

常用清理命令

  • 限制日志总大小为100M
    journalctl --vacuum-size=100M
    
  • 删除30天前的日志
    journalctl --vacuum-time=30d
    

3. 自动化设置

  • 设置脚本执行权限
    sudo chmod +x /usr/local/bin/cleanup_logs.sh
    
  • 编辑定时任务
    sudo crontab -e
    
  • 添加以下内容(每天凌晨2点和3点执行清理)
    0 2 * * * /usr/local/bin/cleanup_logs.sh
    0 3 * * * journalctl --vacuum-size=100M
    

4. 监控命令

  • 查看整个日志目录的大小
    du -sh /var/log/
    
  • 查看所有日志文件的详细大小,并按大小排序
    find /var/log -type f -exec du -sh {} ; | sort -hr
    
  • 查看 systemd 日志占用空间
    journalctl --disk-usage
    

5. 注意事项

  • 备份重要日志
    sudo tar -czf /home/backup_logs_$(date +%Y%m%d).tar.gz /var/log/
    

通过以上步骤,你可以有效地管理和清理Linux系统日志,确保系统的稳定运行和安全监控。

0