详解nginx日志定时备份和删除

这里给您详细讲解关于“详解nginx日志定时备份和删除”的完整攻略,过程中包含两条示例说明。

1. nginx日志定时备份

1.1. 日志文件配置

首先,在nginx的配置文件中,需要配置出日志文件的路径、文件名、日志格式等信息,例如:

http {
  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

  access_log  /var/log/nginx/access.log  main;
}

这里定义了日志的格式为main,将日志文件保存在/var/log/nginx/access.log路径下。

1.2. 日志备份脚本

在Linux系统中,可以使用crontab定时备份日志。具体的备份脚本可以参考下面的示例。该示例会把每天的日志备份到以年月日形式命名的文件中。

#!/bin/bash
# nginx access log backup script

logs_path="/var/log/nginx"
backup_path="/data/nginx_logs_backup"
date_format=$(date +"%Y%m%d")
backup_file="access.log.$date_format.tar.gz"

if [ ! -d $backup_path ]; then
        mkdir -p $backup_path
fi

tar -zcf $backup_path/$backup_file $logs_path/access.log.*
find $backup_path/ -name "*.tar.gz" -mtime +7 -delete

1.3. 备份脚本说明

该备份脚本将日志文件路径/logs_path下的access.log.*的文件备份到$backup_path目录下,并将备份文件命名为access.log.年月日.tar.gz。

同时,该备份脚本会判断$backup_path目录是否存在,如果不存在就新建一个。

最后还需要添加一个定时任务,每天凌晨执行备份脚本:

# crontab -e
0 0 * * * /bin/bash /path/to/backup_script.sh

2. nginx日志定时删除

2.1. 删除脚本

日志备份是为了方便查看历史记录,但是过多的备份将会占用磁盘空间。因此,定期删除一些过期的备份是必要的。下面给出一个删除脚本示例。该脚本会删除过期的备份文件(7天以上)。

#!/bin/bash
# nginx access log clean script

logs_path="/var/log/nginx"
backup_path="/data/nginx_logs_backup"

find $backup_path/ -name "*.tar.gz" -mtime +7 -delete
find $logs_path/ -name "access.log.*" -mtime +7 -delete

2.2. 删除脚本说明

该删除脚本会删除备份目录$backup_path中7天以上的备份文件和日志文件路径$logs_path下的access.log.*中7天以上的文件。

同样,需要添加一个定时任务,每天凌晨执行删除脚本:

# crontab -e
0 0 * * * /bin/bash /path/to/clean_script.sh

这样,我们就成功地实现了nginx日志定时备份和删除。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解nginx日志定时备份和删除 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • nginx添加缓存以及判断是否缓存生效

    location ~.*\.(js|css|html|png|jpg|gif)$ { expires 3d; } expires    3d;  //表示缓存3天 expires    3h;  //表示缓存3小时 expires    max;  //表示缓存10年 expires    -1;  //表示永远过期。 如果设置为-1在js、css等静态文件…

    Nginx 2023年4月12日
    00
  • nginx status状态页配置方法和中文说明

    以下是“nginx status状态页配置方法和中文说明”的完整攻略。 简介 Nginx是一款轻量级高性能的Web服务器和反向代理服务器。Nginx提供了一个简单的状态页,可以用来查看Nginx服务器当前的运行状态。这个状态页通常称为Nginx状态页,也称作Nginx Status模块,可以通过它来检查服务器的活动状态,包括当前的请求数、连接数、连接状态等信…

    Nginx 2023年5月16日
    00
  • 使用 Nginx 部署静态页面的方法

    当我们需要部署静态页面时,可以使用Nginx进行部署,该过程需要涵盖以下步骤: 安装Nginx 首先需要安装Nginx,具体步骤如下: sudo apt-get update sudo apt-get install nginx 安装完成后,可以使用以下命令来检查Nginx是否正常工作: sudo systemctl status nginx 配置Nginx…

    Nginx 2023年5月16日
    00
  • Kubernetes中Nginx服务启动失败如何排查

    这篇文章主要介绍“Kubernetes中Nginx服务启动失败如何排查”,在日常操作中,相信很多人在Kubernetes中Nginx服务启动失败如何排查问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Kubernetes中Nginx服务启动失败如何排查”的疑惑有所帮助!接下来,请跟着小编一起来学习吧! ❌pod节点启动失败,ng…

    2023年4月10日
    00
  • 让Nginx支持shtml格式的配置方法

    让Nginx支持shtml格式需要进行如下配置: 在Nginx配置文件中添加shtml解析配置 在需要使用shtml格式的HTML文件中添加shtml指令 下面我们具体讲解这两个步骤。 1. 添加shtml解析配置 要在Nginx中添加shtml解析配置,我们需要编辑Nginx的配置文件nginx.conf,找到http标签下的server标签,添加如下内容…

    Nginx 2023年5月16日
    00
  • nginx使用反向代理支持node.js服务

    前言 Node.js自身能作为web服务器用,但是如果要在一台机器上开启多个Node.js应用该如何做呢?有一种答案就是使用nginx做反向代理。反向代理在这里的作用就是,当代理服务器接收到请求,将请求转发到目的服务器,然后获取数据后返回。 步骤 一、正常使用node.js开启web服务 var http = require(‘http’); http.cr…

    Nginx 2023年4月10日
    00
  • 【ubuntu】修改php-fpm和nginx运行用户

    (php)项目a是用test用户运行nginx和php-fpm是www-data用户运行(python)项目b是用test用户运行 项目a通过php函数exec调用python脚本的接口造成了没有权限访问目录 直接把项目b的权限切换为www-data可以执行,但是不便于开发,最好是把php、nginx、项目a、项目b都在一个用户、组下面。 打个比方test是…

    Nginx 2023年4月12日
    00
  • 详解nginx配置location总结及rewrite规则写法

    这里给您详细讲解一下 “详解nginx配置location总结及rewrite规则写法” 的完整攻略,包含两个示例说明。 一、什么是location? location 是 Nginx 配置中一个非常重要的指令,它用于匹配请求的 URL 路径。具体来说,它可以用来配置服务器如何响应请求。 二、location 的分类 在 Nginx 中,location 指…

    Nginx 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部