温馨提示×

如何定期清理Ubuntu日志以释放空间

小樊
55
2025-08-25 02:44:12
栏目: 云计算

定期清理Ubuntu日志可通过以下方式操作,建议结合工具与脚本实现自动化管理:

一、使用系统工具

  1. journalctl命令(针对systemd日志)

    • 查看日志占用:journalctl --disk-usage
    • 保留最近7天日志:sudo journalctl --vacuum-time 1w
    • 保留500MB日志:sudo journalctl --vacuum-size 500M
  2. logrotate工具(自动轮转压缩)

    • 编辑配置文件(如/etc/logrotate.d/rsyslog):
      /var/log/syslog {  
          daily  
          rotate 7  
          compress  
          missingok  
      }  
      
    • 手动触发:sudo logrotate -f /etc/logrotate.conf

二、命令行批量清理

  • 清空所有.log文件内容(保留文件结构):
    sudo find /var/log -type f -name "*.log" -exec truncate -s 0 {} \;
  • 删除指定天数前的日志文件(如30天前):
    sudo find /var/log -type f -name "*.log" -mtime +30 -delete

三、自动化脚本与定时任务

  • 脚本示例(删除30天前日志):
    #!/bin/bash  
    LOG_DIR="/var/log"  
    find "$LOG_DIR" -type f -name "*.log" -mtime +30 -exec rm -f {} \;  
    
    保存为clean_logs.sh,赋予执行权限:chmod +x clean_logs.sh
  • 添加定时任务(每天凌晨2点执行):
    crontab -e,添加行:0 2 * * * /path/to/clean_logs.sh

注意事项

  • 操作前建议备份重要日志(如/var/log/auth.log)。
  • 谨慎使用rm -rf,避免误删系统关键日志。
  • 定期监控磁盘空间,可通过df -h查看剩余空间。

以上方法可根据需求选择,优先使用journalctllogrotate实现自动化管理,减少手动操作风险。

0