CentOS日志清理主要有以下三种方法及步骤:
journalctl
命令(推荐)适用场景:清理systemd管理的系统日志(如/var/log/journal/
下的日志)。
步骤:
journalctl --查看所有日志
journalctl -u 服务名 --查看特定服务日志(如`journalctl -u nginx`)
# 保留最近7天的日志(删除7天前的日志)
journalctl --vacuum-time=7d
# 保留500MB的日志(删除超出部分)
journalctl --vacuum-size=500M
适用场景:清理/var/log/
目录下的特定日志文件。
步骤:
ls -l /var/log/ --查看日志文件列表
# 清空单个日志文件(如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等应用日志)。
步骤:
sudo yum install logrotate -y
/etc/logrotate.d/nginx
):/var/log/nginx/*.log {
daily # 每天轮转
rotate 7 # 保留7天日志
compress # 压缩旧日志
missingok # 忽略缺失文件
notifempty # 空日志不轮转
copytruncate # 清空原文件而非删除(适用于正在写入的日志)
}
# 手动立即执行轮转
sudo logrotate -f /etc/logrotate.d/nginx
# 查看定时任务(默认通过cron每日执行)
cat /etc/cron.daily/logrotate
sudo
执行删除或修改操作,避免权限不足。以上方法可根据实际需求选择,优先使用journalctl
或logrotate
实现自动化管理。