@羲凡——只为了更好的活着
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
====================================================================
@羲凡——只为了更好的活着
若对博客中有任何问题,欢迎留言交流