Linux uses shell scripts to regularly delete historical log files

Linux uses shell scripts to regularly delete historical log files

1. Tools directory file structure

[root@www tools]# tree tools/
tools/
├── bin
│ ├── del_history_files
│ 
└── etc
  ├── del_history_files.cfg
 
2 directories, 2 files

2. Delete history file script del_history_files

[root@www tools]# more tools/bin/del_history_files
#!/bin/sh
 
# Delete files in the specified directory whose file time is earlier than the specified time node. Time granularity: hours# Configuration file format: Directory to be cleaned = number of hours#
#
# define restricted path
PATH="/bin:/usr/bin:/sbin:/usr/sbin"
 
# adirname - return absolute dirname of a given file
adirname() { odir=`pwd`; cd `dirname $1`; pwd; cd "${odir}"; }
 
 
# ---------
# constants
# ---------
MYNAM=`basename "$0"`
MYDIR=`adirname "$0"`
MYCFG="${MYDIR}/../etc/${MYNAM}.cfg"
MYTMP="${MYDIR}/../tmp"
MYLCK="${MYTMP}/${MYNAM}.lock"
 
# perform some locking (as good as it gets in a shell)
[ -s "${MYLCK}" ] && kill -0 `cat "${MYLCK}"` 2>/dev/null &&
    die "${MYNAM}: already running!"
echo "$$" > "${MYLCK}"
 
PATHS=(`cat ${MYCFG}`)
for PP in ${PATHS[@]}
do
  APP_PATH=`echo ${PP} | awk -F'=' '{print $1}'`
  N=`echo ${PP} | awk -F'=' '{print $2}'`
    if [ -d ${APP_PATH} ] ; then
    T=`/bin/date --date "${N} hours ago" "+%Y%m%d%H%M"`
    TMP_FILE="/tmp/`echo ${PP} | md5sum | awk '{print $1}'`"
    touch -t ${T} ${TMP_FILE}
    find ${APP_PATH} ! -newer ${TMP_FILE} -type f -print0 | xargs -0 -n 100 rm -rf
    find ${APP_PATH} -type d -empty -print0 | xargs -0 -n 100 rm -rf &> /dev/null
    fi
done
 
rm -rf ${MYLCK}

3. Delete the configuration file del_history_files.cfg of the history file script

[root@www tools]# more tools/etc/del_history_files.cfg
#Directory to be cleaned = number of hours /home/logs/nginx=720
/home/logs/varnish=720

4. Run crontab

[root@www tools]# more /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
#clear old logs
00 6 * * * root /home/tools/bin/del_history_files

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:
  • Script for regularly deleting files older than a certain day in Windows and Linux
  • Automatically back up Oracle databases using scripts in Linux and delete backups older than a specified number of days
  • Linux delete invalid link file script sharing
  • Ideas and tests for custom Linux scripts to prevent accidental deletion

<<:  React+axios implements github search user function (sample code)

>>:  Summary of MySQL's commonly used concatenation statements

Recommend

Enabling or disabling GTID mode in MySQL online

Table of contents Basic Overview Enable GTID onli...

Detailed explanation of Linux file operation knowledge points

Related system calls for file operations create i...

Summary of methods for inserting videos into HTML pages

Now if you want to use the video tag in a page, y...

Summary of frequently used commands for Linux file operations

0. New operation: mkdir abc #Create a new folder ...

HTML n ways to achieve alternate color code sample code

This article mainly introduces the sample code of...

Some references about colors in HTML

In HTML, colors are represented in two ways. One i...

How to handle super large form examples with Vue+ElementUI

Recently, due to business adjustments in the comp...

How to add file prefixes in batches in Linux

You need to add "gt_" in front of the f...

Installation tutorial of MySQL 5.1 and 5.7 under Linux

The operating system for the following content is...

Command to view binlog file creation time in Linux

Table of contents background analyze method backg...

React Router V6 Updates

Table of contents ReactRouterV6 Changes 1. <Sw...

In-depth analysis of MySQL indexes

Preface We know that index selection is the work ...

Detailed example of SpringBoot+nginx to achieve resource upload function

Recently, I have been learning to use nginx to pl...