详解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日

相关文章

  • 统计Apache或nginx日志里访问次数最多的前十个IP

    1.根据访问IP统计UV awk ‘{print $1}’ access.log|sort | uniq -c |wc -l 2.统计访问URL统计PV awk ‘{print $7}’ access.log|wc -l 3.查询访问最频繁的URL awk ‘{print $7}’ access.log|sort | uniq -c |sort -nk 1 …

    Nginx 2023年4月9日
    00
  • nginx配置虚拟主机的详细步骤

    下面就是配置Nginx虚拟主机的详细步骤,步骤如下: 一、创建网站目录结构 在配置Nginx虚拟主机之前,你需要在/var/www目录下创建网站根目录,可以选择使用 mkdir 命令来创建如下网站目录(以 example.com 为例): $ sudo mkdir -p /var/www/example.com/html 其中:- -p 参数表示创建可能不存…

    Nginx 2023年5月16日
    00
  • 如何配置Nginx的Keepalive?

    在配置Nginx Keepalive之前,需要确保Nginx已经正确安装并运行。接下来,请按照以下步骤进行配置。 步骤1. 打开Nginx配置文件 首先,打开Nginx配置文件。在Ubuntu系统下,在终端中输入以下命令以编辑Nginx配置文件: sudo nano /etc/nginx/nginx.conf 步骤2. 配置Keepalive 在打开的Ngi…

    Nginx 2023年4月19日
    00
  • Nginx多层代理配置方法

    下面我将详细讲解Nginx多层代理配置方法的完整攻略,包括两条示例说明。 什么是Nginx多层代理 Nginx多层代理是指在一个Nginx服务中通过反向代理实现多层代理,即对来自客户端的请求进行一连串的代理转发,达到实现多层代理的目的。常见的应用场景包括: 网络安全增强:在多层代理的过程中,可以屏蔽掉部分攻击请求,增强网络安全性。 负载均衡:多层代理可以实现…

    Nginx 2023年5月16日
    00
  • Nginx配置2-http块配置

    http配置块 http配置块包括http-全局块、http-server块、upstream 块儿。可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。 http-全局块 mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等 http { #设定mime类型,类型由mime.ty…

    Nginx 2023年4月16日
    00
  • nginx日志统计相关命令和python脚本

    src=(s1,s2,s3,s3) for i in ${src[@]     nginx访问量统计 1.根据访问IP统计UVawk ‘{print $1}’  access.log|sort | uniq -c |wc -l 嘉图的统计 awk ‘{print $1}’ /var/log/nginx/access.log|sort | uniq -c |w…

    Nginx 2023年4月12日
    00
  • nginx 性能优化的概述及在CPU资源方面的处理

    nginx的性能优化的概述 软件层面的提升硬件的使用率 增大CPU的利用率 增大内存的利用率 增大磁盘IO利用率 增大网络带宽利用率 提升硬件规格 网卡:万兆网卡、例如10G、25G、40G等 磁盘:固态硬盘,关注IOPS和BPS指标 CPU:更快的主频,更多的核心,更大缓存,更优的架构 内存:更快的访问速度 超出硬件上限后使用DNS 如何增大Nginx使用…

    Nginx 2023年4月13日
    00
  • Linux下启动,停止,重启Nginx、Mysql、PHP——Nginx常用命令(启动/重启/停止/测试配置文件/重新加载配置文件) Nginx常用命令(启动/重启/停止/测试配置文件/重新加载配置文件)

    LINUX启动Nginx的命令: 一、查询是否启动 [root@jiang php-fpm.d]# ps -ef | grep nginx root 25225 1 0 19:26 ? 00:00:00 nginx: master process /app/nginx/sbin/nginx www 25229 25225 0 19:26 ? 00:00:00…

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