由于项目中经常用到导出功能,导致在服务器生成了很多的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