#!/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
执行结果:
时间: 2024-12-30 05:09:40