@羲凡——只为了更好的活着

Linux 每天删除一个月前的日期文件

公司中总有一些按照日期来命名的文件夹(比如日志文件等),需要定时的删除一个月以前或两个月以前的历史数据。
假如 /aarontest/data/ 目录下存放在一下文件夹

20181122123456
20181212123456
20181222123456
20190122123456

现在要删除30天前的文件夹,执行脚本如下

#!/bin/bash
Folder_Name=/usr/local/package/aarontest/data
Del_Log=$Folder_Name/del-onemonths-ago-file.log
echo `date  +%Y年%m月%d日%H时%M分%S秒` >> $Del_Log
Today=`date -d '-30 days' +%s`
for folder_name in ${Folder_Name}/*
do
    Temp_file=`basename $folder_name`
	if [ `date -d ${Temp_file:0:8} +%s` -lt ${Today} ]
	then	
		echo ${Temp_file:0:8} >> $Del_Log
		rm -rf ${Folder_Name}/${Temp_file}
		echo "==="${Folder_Name}/${Temp_file}" delete over !!!===" >> $Del_Log
	fi
done
echo "已经删除1个月前的文件夹" >> $Del_Log

执行完,生成del-onemonths-ago-file.log日志文件

2019年01月31日13时31分53秒
20181122
===/aarontest/data/20181122123456 delete over !!!===
20181212
===/aarontest/data/20181212123456 delete over !!!===
20181222
===/aarontest/data/20181222123456 delete over !!!===
已经删除1个月前的文件夹

将上述删除脚本放入crontab中,每天早上八点执行

0 8 * * * bash /aarontest/Data/del-onemonths-ago-file.sh

====================================================================

@羲凡——只为了更好的活着

若对博客中有任何问题,欢迎留言交流

Logo

更多推荐