A simple method to implement Linux timed log deletion

A simple method to implement Linux timed log deletion

Introduction

Linux is a system that can automatically generate files, logs, emails, backups, etc. Although hard disks are cheap now, we can have a lot of hard disk space to waste for these files. It is very refreshing to let the system clean up some unnecessary files regularly.

Various logs will be generated in the project, and as time goes by, the number of logs will increase. Logs older than a certain time have no reference value and will take up space, so most projects will delete the logs. The requirement of this article is to delete logs older than 7 days, which is roughly divided into two steps: one is the command to delete the logs, and the other is to set a scheduled task.

Delete the logs of the specified time

First, search for all logs from 7 days ago. When using find, add the -mtime parameter, which means to search for files or directories that have been changed within the specified time, in units of 24 hours. An example is find you/path -mtime +7 -name '*.log' , as follows

The search is complete, and the next step is deletion. Based on the above statement, adding the -exec parameter can achieve deletion. The parameter means that if the return value of the find command is True, the command will be executed. So the complete statement is find you/path -mtime +7 -name '*.log' -exec rm -rf {} \; . In actual execution, delete the logs older than 16 days, otherwise the following demonstration will not work

There was only one log 16 days ago. After the execution, it is not found again, indicating that the deletion was successful.

Set up scheduled tasks

Finally, add the command to the scheduled task. For information about crontab commands and execution time settings, see the references below.
Before adding, let's take a look at the logs from 14 days ago

There is a log. Edit the scheduled task, execute crontab -e, append the log deletion command to the end */1 * * * * find you/path -mtime +14 -name '*.log' -exec rm -rf {} \; and set it to execute once every minute. Wait a minute and check the logs from 14 days ago.

You can see that after adding the scheduled task, the log has been automatically deleted without manual deletion. Of course, it is not necessary to execute it every minute. Set the time to 1 o'clock every day. The final scheduled task and log deletion commands are as follows

0 1 * * * find you/path -mtime +7 -name '*.log' -exec rm -rf {} \; 

References: find command, crontab command, linux using crontab to add scheduled tasks.

Summarize

The above is the full content of this article. I hope that the content of this article will have certain reference learning value for your study or work. Thank you for your support of 123WORDPRESS.COM.

You may also be interested in:
  • Detailed explanation of command to view log files in Linux environment
  • How to manually scroll logs in Linux system
  • Summary of 6 Linux log viewing methods
  • How to use glog log library in Linux environment
  • Detailed introduction to logs in Linux system

<<:  Problems encountered in using MySQL

>>:  JavaScript design pattern learning proxy pattern

Recommend

Solve the problem of inconsistent MySQL storage time

After obtaining the system time using Java and st...

How to completely uninstall node and npm on mac

npm uninstall sudo npm uninstall npm -g If you en...

Vue implements irregular screenshots

Table of contents Image capture through svg CSS p...

The most complete 50 Mysql database query exercises

This database query statement is one of 50 databa...

A great collection of web standards learning resources

These specifications are designed to allow for bac...

Detailed example of using js fetch asynchronous request

Table of contents Understanding Asynchrony fetch(...

Linux completely removes node.js and reinstalls it through the yum command

first step Delete it once with the built-in packa...

Use nginx + secondary domain name + https support

Step 1: Add a secondary domain name to the Alibab...

Upgrade MySQL 5.1 to 5.5.36 in CentOS

This article records the process of upgrading MyS...

The Complete Guide to Grid Layout in CSS

Grid is a two-dimensional grid layout system. Wit...

Detailed explanation of mysql replication tool based on python

Table of contents 1. Introduction Second practice...