Detailed explanation of the implementation process of Nginx log timing splitting in CentOS 7

Detailed explanation of the implementation process of Nginx log timing splitting in CentOS 7

1. Write a split script (splitNginxLog.sh)

* Because this example sets the log splitting to be performed at 0:00 every day, folder and rq are both set to use yesterday's date for archiving.

#!/bin/bash
folder=`date -d yesterday +%Y%m`
rq=`date -d yesterday +%Y%m%d`
# Original log path logs_path="/var/log/nginx/sitename.com/"
# Log backup path logs_backup_path="/var/log/nginx/sitename.com/$folder"
# Logs to be split logs_access="access"
logs_error="error"
# Create a backup path [ -d $logs_backup_path ]||mkdir -p $logs_backup_path
# Move the logs to the backup folder mv ${logs_path}${logs_access}.log ${logs_backup_path}/${logs_access}_${rq}.log
mv ${logs_path}${logs_error}.log ${logs_backup_path}/${logs_error}_${rq}.log
#Terminate nginx's pid
pid_path="/var/run/nginx.pid"
kill -USR1 $(cat $pid_path)

2. Test log splitting script

Run the following statement in the directory where the .sh file is stored to test whether the split script is successful.

# sh splitNginxLog.sh

If you get the error $'\r': command not found, it may be due to the encoding of the .sh file, because the script written in the Windows editor is slightly different from that in Linux.

Treatment method:

1. Install dos2unix for encoding conversion

# yum install dos2unix

2. Convert code

# dos2unix splitNginx.sh

3. Set up automatic execution

# crontab -l //List all scheduled tasks
# crontab -e //Edit scheduled tasks

Write the following statements in it:

00 00 * * * bash /root/splitNginxLog.sh

The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM.

You may also be interested in:
  • How to install PHP7.4 and Nginx on Centos
  • Detailed tutorial for installing nginx on centos8 (picture and text)
  • CentOS 7.2 builds nginx web server to deploy uniapp project
  • Solve the problem of "Welcome to nginx on Fedora!" after installing nginx on Centos7, and there is no default.conf file in the conf.d directory
  • Centos7.3 How to install and deploy Nginx and configure https
  • How to add Nginx to system services in CentOS7
  • How to install Nginx in CentOS7 and configure automatic startup
  • Centos7 startup process and Nginx startup configuration in Systemd
  • How to build a private server in docker (docker-registry with nginx&ssl on centos)

<<:  A brief discussion on this.$store.state.xx.xx in Vue

>>:  MySQL table auto-increment id overflow fault review solution

Recommend

Detailed explanation of CSS3 flex box automatic filling writing

This article mainly introduces the detailed expla...

How to run MySQL using docker-compose

Directory Structure . │ .env │ docker-compose.yml...

Analysis of the process of deploying Python applications in Docker containers

Simple application deployment 1. Directory struct...

How to avoid data loop conflicts when MySQL is configured with dual masters

I wonder if you have ever thought about this ques...

Detailed explanation of Vue life cycle

Table of contents Why understand the life cycle W...

Using HTML web page examples to explain the meaning of the head area code

Use examples to familiarize yourself with the mean...

Detailed explanation of MYSQL database table structure optimization method

This article uses an example to illustrate the me...

How to install FastDFS in Docker

Pull the image docker pull season/fastdfs:1.2 Sta...

MySQL 8.0 DDL atomicity feature and implementation principle

1. Overview of DDL Atomicity Before 8.0, there wa...

Example analysis of the principle and solution of MySQL sliding order problem

This article uses examples to explain the princip...

Solution to MySQL failure to start

Solution to MySQL failure to start MySQL cannot s...

Specific usage instructions for mysql-joins

Table of contents Join syntax: 1. InnerJOIN: (Inn...

CSS uses BEM naming convention practice

When you see a class, what information do you wan...

Linux kernel device driver advanced character device driver notes

/****************** * Advanced character device d...