码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-01-04 19:47:02      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

#!/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

执行结果:

技术分享


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

标签:

原文地址:http://my.oschina.net/pwd/blog/363610

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!