清洗Nginx日志文件通常是为了删除或归档旧的日志文件,以便节省磁盘空间
sudo systemctl stop nginx
find命令查找并删除指定天数之前的日志文件。例如,要删除30天前的日志文件,请运行:sudo find /var/log/nginx -type f -name "*.log" -mtime +30 -exec rm {} \;
这里,/var/log/nginx是日志文件所在的目录,*.log表示所有日志文件,-mtime +30表示30天前的文件,-exec rm {} \;表示删除找到的文件。
gzip命令:sudo find /var/log/nginx -type f -name "*.log" -mtime +30 -exec gzip {} \;
这将会压缩找到的旧日志文件,而不是删除它们。
sudo systemctl start nginx
/etc/logrotate.d/nginx文件,确保它包含以下内容:/var/log/nginx/*.log {
daily;
missingok;
rotate 30;
compress;
notifempty;
create 0640 www-data adm;
sharedscripts;
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
这里,daily表示每天轮转日志文件,rotate 30表示保留30个轮转后的日志文件,compress表示压缩轮转后的日志文件。
现在,Nginx将自动每天轮转日志文件,并在需要时删除或压缩旧的日志文件。