清理Nginx错误日志是维护服务器的重要任务之一,以下是几种有效的清理方法:
# 清空错误日志文件(保留文件存在)
sudo cat /dev/null > /var/log/nginx/error.log
# 或者直接删除并重建日志文件
sudo rm /var/log/nginx/error.log
sudo touch /var/log/nginx/error.log
sudo chown www-data:www-data /var/log/nginx/error.log # 根据实际用户调整
sudo service nginx restart
sudo nano /etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
sudo logrotate -d /etc/logrotate.d/nginx
sudo logrotate -f /etc/logrotate.d/nginx
# 编辑crontab
sudo crontab -e
# 添加以下行,每天凌晨清理日志
0 0 * * * cat /dev/null > /var/log/nginx/error.log
清理前确认日志路径是否正确(通常为/var/log/nginx/error.log
,但可能因配置而异)
如果需要保留日志用于分析,可以先备份:
sudo cp /var/log/nginx/error.log /var/log/nginx/error.log.$(date +%Y%m%d)
确保Nginx有权限写入新日志文件(通常用户为www-data
或nginx
)
如果使用Docker,需要进入容器执行或配置适当的日志驱动
对于生产环境,建议使用方法2(logrotate)进行自动化管理
您需要根据实际的Nginx配置和系统环境选择最适合的方法。