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
實現自動化管理。