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

相关文章

  • PHP程序员玩转Linux系列 nginx初学者引导

    为了让初学者更好地入门Linux和Nginx,我们推出了“PHP程序员玩转Linux系列 nginx初学者引导”的攻略,其中包含以下两条示例说明: 示例一:使用Nginx搭建简单的Web服务器 步骤一:安装Nginx 在Ubuntu系统中,可以通过以下命令来安装Nginx: sudo apt-get update sudo apt-get install n…

    Nginx 2023年5月16日
    00
  • Nginx系列~Nginx服务启动不了

    Nginx服务有时起动不了了,原因是80端口为其它应用程序占用了,这时,我们需要查看是哪个程序占用了它,可能是IIS的某个站点,或者Tomat,Apache等,都有可能,所以,我们需要查看一下电脑80端口的使用情况,使用下面命令 netstat -aon|findstr “:80” 看一下结果 这时,我们并没有看到本机有被PID为4的进程占用,在任务管理器里…

    Nginx 2023年4月16日
    00
  • nginx结合keepalived实现高可用的完整步骤

    当我们需要部署高可用的 Web Server 访问服务时,我们可以使用 Nginx 和 Keepalived 来完成这个需求。 Nginx 是一个轻量级、高性能、高可靠性的 Web 服务器。Keepalived 则是基于 VRRP 协议的一个高可用解决方案。当有服务器宕机或者无法提供服务时,Keepalived 能够将 VIP(虚拟 IP)迁移到其他服务器,…

    Nginx 2023年5月16日
    00
  • nginx代理实现静态资源访问的示例代码

    首先要明确一下什么是 Nginx 代理和静态资源访问。 Nginx 代理是 Nginx 服务器接收到请求后,将请求转发到其他服务器或者资源上,再将响应结果返回给客户端。静态资源访问则是指通过 HTTP 请求获取静态资源,如 HTML、CSS、JS、图片等。 下面是两个示例,演示如何使用 Nginx 代理实现静态资源访问。 示例一:Nginx 代理实现静态资源…

    Nginx 2023年5月16日
    00
  • 详解Nginx 静态文件服务配置及优化

    下面是关于“详解Nginx 静态文件服务配置及优化”的完整攻略,其中包含了两条示例说明。 详解Nginx 静态文件服务配置及优化 为什么需要Nginx 静态文件服务? 由于动态语言如PHP、Python、Java等每次请求都需要解析代码,会对服务器性能造成一定的负担,特别是在并发量较大时,响应速度会非常慢,影响用户的体验。而Nginx的核心为静态文件服务,可…

    Nginx 2023年5月16日
    00
  • Linux环境Nginx安装多版本PHP

    关于Linux环境Nginx安装与调试以及PHP安装参考此文即可:http://blog.csdn.net/unix21/article/details/8544922     Linux版本:64位CentOS 6.4 Nginx版本:nginx1.8.0 PHP版本:php5.5.28 & php5.4.44 所谓多版本多版本php就是php5.…

    Nginx 2023年4月11日
    00
  • Nginx搭建https服务器教程

    Nginx搭建https服务器的教程分为以下步骤: Step 1. 购买SSL证书 在开始Nginx搭建https服务器之前,首先需要购买SSL证书。可以购买来自第三方机构的证书,也可以自己签发自签名证书。这里以Let’s Encrypt免费证书为例,Step 2中会详细说明如何获取证书。 Step 2. 安装Nginx 在安装Nginx之前,需要先安装一些…

    Nginx 2023年5月16日
    00
  • nginx修改配置后,重新加载配置报错

    nginx配置,加到服务器上之后,执行nginx -s reload时,出现报错:nginx: [emerg] unknown directive ”        server” in /usr/local/nginx-1.20.1/conf/nginx.conf:31 检查报错日志,发现配置多了空格或输入中文符号,修改后执行nginx -t -c /et…

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