标签:
#!/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