版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013494765/article/details/87883522
定时清理日志脚本
说明
脚本用于清除某一文件夹中n天前的 *.log 文件,可以通过参数控制 n 的大小。
原理
使用find 命令查询当前路径中创建时间是n天前的文件,然后执行rm命令删除文件
代码
#! /bin/bash
#------------------------------
# 清除脚本文件所在文件夹的日志
# 输入参数控制删除多少天前的记录
#文件绝对路径
basepath=$(cd `dirname $0`; pwd)
day=60
# 判断输入元素个数是否等于1
if [[ $# -eq 1 ]]; then
day=$1
fi
find $basepath -mtime +${day} -name "*.log" -exec rm -rf {} \;
参数说明
mtime 举例说明:
-mtime n : n为数字,意思为在n天之前的“一天之内”被更改过内容的文件
-mtime +n : 列出在n天之前(不含n天本身)被更改过内容的文件名
-mtime -n : 列出在n天之内(含n天本身)被更改过内容的文件名
使用说明
为避免误删日志文件,所以本脚本只支持删除脚本文件夹中的日志,使用时请放到要删除日志的文件夹。
添加定时任务启动脚本
[root@fdsafjklan ~]$crontab -e
# 清除datax日志
00 08 * * * /日志路径/clearLog.sh 7 >>/定时任务日志路径/clear_`date +\%Y\%m\%d`.log