debian

如何清洗Nginx日志文件

小樊
45
2025-08-23 16:43:18
栏目: 编程语言

清洗Nginx日志文件通常是为了删除或归档旧的日志文件,以便节省磁盘空间

  1. 停止Nginx服务:
sudo systemctl stop nginx
  1. 使用find命令查找并删除指定天数之前的日志文件。例如,要删除30天前的日志文件,请运行:
sudo find /var/log/nginx -type f -name "*.log" -mtime +30 -exec rm {} \;

这里,/var/log/nginx是日志文件所在的目录,*.log表示所有日志文件,-mtime +30表示30天前的文件,-exec rm {} \;表示删除找到的文件。

  1. (可选)如果你想将旧的日志文件压缩而不是删除,可以使用gzip命令:
sudo find /var/log/nginx -type f -name "*.log" -mtime +30 -exec gzip {} \;

这将会压缩找到的旧日志文件,而不是删除它们。

  1. 重新启动Nginx服务:
sudo systemctl start nginx
  1. (可选)为了防止日志文件过大,你可以配置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将自动每天轮转日志文件,并在需要时删除或压缩旧的日志文件。

0
看了该问题的人还看了