Linux系统下nginx日志每天定时切割的脚本写法

Linux系统下Nginx日志每天定时切割的脚本可以通过crontab来实现。具体步骤如下:

1. 创建脚本文件

首先,使用任意文本编辑器创建一个shell脚本,比如命名为nginx_log_rotate.sh,然后将以下代码复制进去:

#!/bin/bash

log_dir=/var/log/nginx
log_name=access.log
yesterday=$(date -d "yesterday" +%Y-%m-%d)
gzip ${log_dir}/${log_name}.${yesterday}
kill -USR1 $(cat /var/run/nginx.pid)

这个脚本文件的作用是将昨天的Nginx访问日志文件进行压缩,并发送一个USR1信号给Nginx主进程,使其重新打开日志文件,从而开始记录新的日志。

2. 修改脚本文件属性

修改脚本文件的属性,将其变成可执行文件,使用以下命令:

chmod +x nginx_log_rotate.sh

3. 添加计划任务到crontab

将脚本文件添加到计划任务中,可以在每天凌晨定时执行,命令如下:

crontab -e

然后在文件的最后添加以下内容:

0 0 * * * /path/to/nginx_log_rotate.sh

这个命令表示在每天的0点0分,执行指定路径的nginx_log_rotate.sh脚本文件。

示例

假设我的Nginx日志文件位于/var/log/nginx/access.log,我使用的是默认的Nginx配置文件,Nginx主进程的PID文件为/var/run/nginx.pid,脚本文件名为nginx_log_rotate.sh,那么我可以将以下脚本代码拷贝到一个新文件中,保存为/opt/nginx_log_rotate.sh

#!/bin/bash

log_dir=/var/log/nginx
log_name=access.log
yesterday=$(date -d "yesterday" +%Y-%m-%d)
gzip ${log_dir}/${log_name}.${yesterday}
kill -USR1 $(cat /var/run/nginx.pid)

修改脚本文件的权限,使其具有执行权限:

chmod +x /opt/nginx_log_rotate.sh

然后使用以下命令来编辑crontab

crontab -e

在最后一行添加以下内容:

0 0 * * * /opt/nginx_log_rotate.sh

保存并退出编辑器。这样,每天凌晨0点,脚本文件/opt/nginx_log_rotate.sh就会被执行,Nginx的访问日志文件也会被定时切割。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux系统下nginx日志每天定时切割的脚本写法 - Python技术站

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

相关文章

  • Python脚本制作天气查询实例代码

    想要制作一款能够查询天气的Python脚本,我们可以从以下步骤入手: 步骤一:获取天气API 要想制作能够查询天气的Python脚本,我们需要先获取一个天气API。目前市面上的天气API有很多种,比如心知天气、和风天气等。这里我们以心知天气为例,具体操作步骤如下: 进入心知天气官网(https://www.seniverse.com/ ),注册并登录账号。 …

    人工智能概论 2023年5月24日
    00
  • 在pycharm中使用pipenv创建虚拟环境和安装django的详细教程

    下面是在PyCharm中使用Pipenv创建虚拟环境和安装Django的详细教程: 1. 安装Pipenv 首先,需要安装Pipenv。打开PyCharm,在PyCharm的终端中输入以下命令: pip install pipenv 2. 创建虚拟环境 使用Pipenv创建虚拟环境非常简单,只需执行以下命令: pipenv –python 3.8 这里的3…

    人工智能概览 2023年5月25日
    00
  • Dubbo本地开发技巧分享

    Dubbo本地开发技巧分享 Dubbo是一个高性能、轻量级的Java RPC框架,被广泛应用于微服务架构中。在进行Dubbo应用开发时,本地开发是必不可少的环节,因此掌握一些Dubbo本地开发技巧是非常有必要的。 本文将会分享几个Dubbo本地开发技巧,包括Dubbo本地开发环境的配置、Dubbo服务的本地调用等。 环境配置 在进行本地开发前,需要首先配置本…

    人工智能概览 2023年5月25日
    00
  • Laravel使用消息队列需要注意的一些问题

    下面是关于“Laravel使用消息队列需要注意的一些问题”的完整攻略。 消息队列简介 消息队列是一种解耦合的机制,将消息的生成和处理解耦合,以提高应用的性能和可伸缩性。 在 Laravel 中,使用队列可以通过 queue 方法创建队列作业的实例,使用可用的队列处理程序将作业放入队列中,等待后台进程处理这些作业。 需要注意的问题 1. 队列驱动方式的选择 除…

    人工智能概览 2023年5月25日
    00
  • PHP程序员玩转Linux系列 Linux和Windows安装nginx

    PHP程序员玩转Linux系列:Linux和Windows安装nginx攻略 一、什么是nginx Nginx是一个高性能、高并发的Web服务器,它既可以充当静态Web服务器,也可以作为反向代理服务器、负载均衡服务器、邮件代理服务器或者HTTP缓存服务器。目前,nginx已经成为许多大型网站的主流Web服务器之一。 二、Linux安装nginx 2.1 使用…

    人工智能概览 2023年5月25日
    00
  • Python使用Pillow进行图像处理

    下面是使用Pillow进行图像处理的攻略: 什么是Pillow Pillow是Python图像处理的库,它支持的图片格式十分丰富,如JPEG、PNG、BMP、GIF、ICO、TIFF等。 安装Pillow 要安装Pillow,可以使用以下命令: pip install Pillow 使用Pillow进行图像处理 打开图片 使用Pillow打开图片非常简单,只…

    人工智能概览 2023年5月25日
    00
  • Nginx单向认证的安装配置方法

    安装配置Nginx单向认证需要以下几个步骤: 生成SSL证书 首先,我们需要生成SSL证书。可以使用OpenSSL工具来生成自签名证书,步骤如下: # 生成私钥 openssl genrsa -out server.key 2048 # 生成证书签发请求 openssl req -new -key server.key -out server.csr # 生…

    人工智能概览 2023年5月25日
    00
  • Django Rest framework三种分页方式详解

    Django Rest Framework是一个开源的库,用于为Django创建API,它提供了许多有用的扩展和工具,其中之一是分页。通过使用分页,我们可以限制返回的结果数量。Django Rest Framework提供了三种分页方式,包括: PageNumberPagination:用传统的分页方式来分页结果。这个分页器非常简单,仅需提供每页的数据数量即…

    人工智能概览 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部