首页 > 代码库 > #批量清理某目录下的文件或移除某目录下的文件
#批量清理某目录下的文件或移除某目录下的文件
#!/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
执行结果:
#批量清理某目录下的文件或移除某目录下的文件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。