首页 > 代码库 > #批量清理某目录下的文件或移除某目录下的文件

#批量清理某目录下的文件或移除某目录下的文件

#!/bin/bash 
#批量清理某目录下的文件或移除某目录下的文件
basedir=/data/db/renewal/snapshots   #执行目录
clear_before_days=95 		     #清理的时间,100代表100天前的数据	
logdir=/data/log/clear		     #日志路径
log=$logdir/clear.log		     #日志文件	
file_key="snapshot" 		     #清理文件包含关键字	
is_font=1			     #终端是否打印日志: 1打印 0不打印	
is_log=1			     #是否记录日志: 1记录 0不记录


datef(){
date "+%Y-%m-%d %H:%M:%S"
}

if [[ ! -d $basedir  ]];then
echo "[ $(datef) ] 需要清理的目录不存在: $basedir"
exit
fi

print_log(){
if [[ $is_log -eq 1  ]];then
echo "[ $(datef) ] $1" >> $log
fi
}
echo_log(){
if [[ $is_font -eq 1  ]];then
echo "[ $(datef) ] $1"
fi
}
[[ -d $logdir ]] || mkdir -p $logdir 

statics_total(){
file_num=$(find  $basedir     -type f  -name "$file_key*"  |wc -l)
echo_log "$basedir目录:目前含有关键字:$file_key的文件总共有:$file_num个 "
print_log  "$basedir目录:目前含有关键字:$file_key的文件总共有:$file_num个 "
}

static_files(){
file_num=$(find  $basedir   -mtime +$clear_before_days  -type f  -name "$file_key*"  |wc -l)
echo_log "$basedir目录:目前含有关键字:$file_key以及$clear_before_days天以前的文件有:$file_num个 "
print_log  "$basedir目录:目前含有关键字:$file_key以及$clear_before_days天以前的文件有:$file_num个 "
}

rm_files(){
find  $basedir   -mtime +$clear_before_days  -type f  -name "$file_key*" -exec rm {} \;
if [[ $? -eq 0  ]];then
echo_log "$basedir目录:目前含有关键字:$file_key以及$clear_before_days天以前的文件删除成功."
else 
echo_log "$basedir目录:目前含有关键字:$file_key以及$clear_before_days天以前的文件删除失败."
fi 
}

statics_total
static_files 
rm_files
statics_total

执行结果:

技术分享


#批量清理某目录下的文件或移除某目录下的文件