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日

相关文章

  • django连接数据库获取数据的简单步骤记录

    下面是关于Django连接数据库获取数据的简单步骤记录的完整攻略: 1. 设置数据库连接 在Django的settings.py文件中,我们可以设置数据库的连接信息,主要包括数据库类型、数据库名称、用户名、密码、主机等信息。其中,Django支持的数据库类型包括MySQL、PostgreSQL、SQLite、Oracle等,可以根据项目需求进行选择。 以下是…

    人工智能概论 2023年5月25日
    00
  • Spring Boot使用GridFS实现文件的上传和下载方式

    下面是Spring Boot使用GridFS实现文件的上传和下载方式的完整攻略。 简介 GridFS是MongoDB提供的用于存储大量文件的机制。Spring Data MongoDB提供了对GridFS的支持,通过它可以方便地上传、下载和删除文件。 在本教程中,我们将使用Spring Boot框架和MongoDB来演示如何使用GridFS实现文件的上传和下…

    人工智能概论 2023年5月25日
    00
  • Java实例讲解文件上传与跨域问题

    下面就详细讲解一下“Java实例讲解文件上传与跨域问题”的完整攻略。 1.文件上传 1.1 上传方式 文件上传一般采用POST方式,将文件的二进制数据通过HTTP协议上行到服务端。上传过程中需要注意的是设置表单的enctype属性为multipart/form-data,这样可以支持上传文件类型的表单。 1.2 服务端实现 服务端往往需要采用特定的框架或库来…

    人工智能概览 2023年5月25日
    00
  • Python垃圾回收机制三种实现方法

    下面是详细的文章攻略: Python垃圾回收机制三种实现方法 Python是一门高级语言,它提供了自动垃圾回收的功能,这个功能可以帮助开发者减少内存管理的难度,提升开发效率。Python垃圾回收机制的实现有三种方式,分别是: 引用计数机制 标记清除机制 分代收集机制 下面我将详细介绍这三种机制。 引用计数机制 Python中的引用计数机制是最简单的垃圾回收机…

    人工智能概论 2023年5月24日
    00
  • Java OpenCV学习之Mat的基本操作详解

    Java OpenCV学习之Mat的基本操作详解 1.概述 OpenCV是一个广泛应用于计算机视觉领域的开源库。从其名称可以看出,它最初是为C ++编写的,但随着时间的推移,也有了Java等其他语言版本。这篇文章是关于OpenCV的Java版本的Mat类的基本操作和用法优化的攻略。 2.Mat的基本操作 Mat是OpenCV中最常用的类,是处理图像和矩阵的数…

    人工智能概论 2023年5月24日
    00
  • OpenCV实现特征检测和特征匹配方法汇总

    OpenCV实现特征检测和特征匹配方法汇总 本文将介绍使用OpenCV实现特征检测和特征匹配的方法汇总。 特征检测 特征检测是基于图像对应的变化来寻找图像中的关键点的过程,这些关键点可以用来描述图像。OpenCV支持几种特征检测算法,包括:Harris Corner Detection、Shi-Tomasi Corner Detection、SIFT、SUR…

    人工智能概论 2023年5月25日
    00
  • 从荣耀7看 有点不同 的荣耀品牌

    从荣耀7看 有点不同 的荣耀品牌攻略 荣耀品牌作为华为旗下的手机品牌,近年来备受关注。让我们以荣耀7为例,看一下荣耀品牌与其他手机品牌有哪些不同。 硬件配置的高性价比 荣耀7的硬件配置虽然不如当今的旗舰机型,但在当时的市场上,无疑是性价比最高的一款手机。它搭载了华为自主研发的麒麟925芯片,配备了3GB的大内存以及32GB的存储空间。相比当时的市场主流机型,…

    人工智能概览 2023年5月25日
    00
  • 命令行传递参数argparse.ArgumentParser的使用解析

    命令行传递参数是很多Python程序必不可少的功能之一,它使得程序更加灵活、可定制化和易用。Python标准库中的argparse模块提供了解析命令行参数的工具,可以很方便地实现命令行传递参数的功能。 argparse模块的基本使用 在使用argparse模块之前,需要先导入该模块。下面是一个简单的例子,演示了如何使用argparse模块解析命令行参数: i…

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