linux定时对历史文件进行清理

由于项目中经常用到导出功能,导致在服务器生成了很多的excel文件,文件多数以放在以日期yyyy-MM-dd的文件夹下,或者以yyyyMMddHHmmss的格式命名,久而久之造成了服务器的磁盘空间不足,所以想到用linux的crontab定时的清理历史文件:

由于是linux新手,shell脚本都不太没表白,只能从网上一步一步的学习脚本:

脚本如下del_history_excel_file.sh

BASE_FILE_PATH="/***/file"
#文件夹名称类型为2016-04-07
folderDateFmt=`date +"%F"`
#folderYesterdayDateFmt=`date -d yesterday +%F`
##date -d 2 days ago" +%Y%m%d

#文件名称格式*20160401*.xls?
fileDateFmt=`date +"%Y%m%d"`


#删除crmExcel下的文件,文件规则为2016-04-01/20160401122122.xls,所以只要删除文件夹
echo "[删除forder1]"
cd $BASE_FILE_PATH"/forder1"
#ls | grep -v  $folderDateFmt"\|"$folderYesterdayDateFmt | xargs rm -rf
ls | grep -v  $folderDateFmt | xargs rm -rf

##删除crmInfo,文件规则为 20160401122122.xls,删除文件即可
echo "[删除forder2]"
cd $BASE_FILE_PATH"/forder2"
ls | grep -v $fileDateFmt | xargs rm

 ,脚本是保留最近当天的文件,其他的文件都删除,

最后在crontab中,添加定时任务,crontab -e

#每天凌晨四点执行 删除文件操作
* 4 * * * /home/xx/del_history_excel_file.sh
 
 
ps:删除文件要谨慎! 特别注意使用: rm -rf 

猜你喜欢

转载自it-freshman.iteye.com/blog/2289522
今日推荐