作为IT工程师,清理日志文件是日常维护的重要工作。以下是一些高效清理无用日志文件的方法和最佳实践:
首先需要定位系统中的日志文件位置:
# 查找大日志文件(大于100MB)
find /var/log -type f -name "*.log" -size +100M -exec ls -lh {} \;
# 查找所有日志文件
find / -type f \( -name "*.log" -o -name "*.gz" -o -name "*.bz2" \) 2>/dev/null
# 删除30天前的日志文件
find /var/log -type f -name "*.log" -mtime +30 -delete
# 删除空日志文件
find /var/log -type f -name "*.log" -empty -delete
# 压缩大日志文件
find /var/log -type f -name "*.log" -size +100M -exec gzip {} \;
# 截断大日志文件(保留最近内容)
sudo truncate -s 0 /var/log/large.log
logrotate是Linux自带的日志管理工具,可以自动轮转、压缩和删除旧日志。
# 查看logrotate配置
cat /etc/logrotate.conf
ls /etc/logrotate.d/
# 手动执行logrotate
sudo logrotate -vf /etc/logrotate.conf
# 查看journal日志大小
journalctl --disk-usage
# 清理journal日志(保留最近500MB)
sudo journalctl --vacuum-size=500M
# 清理7天前的journal日志
sudo journalctl --vacuum-time=7d
# Apache
sudo truncate -s 0 /var/log/apache2/access.log
sudo truncate -s 0 /var/log/apache2/error.log
# Nginx
sudo truncate -s 0 /var/log/nginx/access.log
sudo truncate -s 0 /var/log/nginx/error.log
# 清理旧的安装日志
sudo rm -f /var/log/installer/*
# 清理apt日志
sudo rm -f /var/log/apt/*.log
# 清理内核日志
sudo rm -f /var/log/kern.log*
#!/bin/bash
# 清理30天前的日志
find /var/log -type f -name "*.log" -mtime +30 -delete
# 压缩大日志文件
find /var/log -type f -name "*.log" -size +50M -exec gzip {} \;
# 清理空日志文件
find /var/log -type f -name "*.log" -empty -delete
# 清理journal日志
journalctl --vacuum-time=30d
truncate
或> filename
清空内容通过合理配置和定期维护,可以有效管理系统日志而不影响系统运行。