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

Cross-domain issues in front-end and back-end separation of Vue+SpringBoot

In the front-end and back-end separation developm...

Mysql 5.7.18 Using MySQL proxies_priv to implement similar user group management

Use MySQL proxies_priv (simulated role) to implem...

Ubuntu 19.04 installation tutorial (picture and text steps)

1. Preparation 1.1 Download and install VMware 15...

What are the advantages of MySQL MGR?

MGR (MySQL Group Replication) is a new feature ad...

Detailed explanation of four types of MySQL connections and multi-table queries

Table of contents MySQL inner join, left join, ri...

A brief discussion on JavaScript shallow copy and deep copy

Table of contents 1. Direct assignment 2. Shallow...

Docker Compose installation and usage steps

Table of contents 1. What is Docker Compose? 2. D...

Design reference WordPress website building success case

Each of these 16 sites is worth reading carefully,...

Detailed explanation of docker network bidirectional connection

View Docker Network docker network ls [root@maste...

Summary of some common writing methods that cause MySQL index failure

Preface Recently, I have been busy dealing with s...

MYSQL Operator Summary

Table of contents 1. Arithmetic operators 2. Comp...

How to modify the location of data files in CentOS6.7 mysql5.6.33

Problem: The partition where MySQL stores data fi...

Detailed explanation of Angular routing sub-routes

Table of contents 1. Sub-route syntax 2. Examples...

Vue implements the right slide-out layer animation

This article example shares the specific code of ...