扫描过期文件脚本

扫描过期文件脚本

简述

**注意**前提是服务器日志目录以日期命名,扫描文件名,过期的目录删掉
如何使用
**直接执行脚本即可**
代码部分

#!/bin/bash
 #########################################################################
 #   > File Name: audoPigeonhole.sh
 #   > Author: chunlongyuan
 #   > Mail: chunlong100@qq.com
 #   > Created Time: Fri May 29 14:16:44 2015
 #   > 每日定时扫描memp里的日志文件夹是否过期,过期则删除整个以日期命名的文件夹
 #########################################################################

#日志根目录这里需要根据机器修改
root_dir=/***/logs
#设置删除多少天前的日志
limit_day=30

#当前日期
today()
{
    date +%Y-%m-%d
}

#判断是否因为过时而需要归档
overtime()
{
    #分割以日期命名的文件夹名
    b_arr=(${1//-/ })
    b_year=${b_arr[0]}
    b_month=${b_arr[1]}
    b_day=${b_arr[2]}

    #分割当前日期
    t_arr=(${today//-/ })
    t_year=${t_arr[0]}
    t_month=${t_arr[1]}
    t_day=${t_arr[2]}

    #比较是否需要归档,10#是为了告诉bash这是10进制的数
    b_total=$[10#$b_year*12*30+10#$b_month*30+10#$b_day]
    t_total=$[10#$t_year*12*30+10#$t_month*30+10#$t_day]
    #echo $1    $b_total    $t_total
    echo $[$t_total-$b_total]
}

#当前日期
today=$(today)

#主函数
work()
{
    #for dir in $(ls $1)
    for dir in $1/*
    do
        #echo $dir
        if [ -d $dir ]
        then
            #如果是时间格式的目录,就直接判断是否需要归档
            echo $dir|grep "[0-9]\{4\}\-[0-9]\{2\}\-[0-9]\{2\}$" > /dev/null
            num=$?
            if [ $num -eq 0 ]
            then
                #echo "    1" $dir
                name=`basename $dir`
                differ=$(overtime $name)
                #echo "-"    $differ    $limit_day
                #如果改文件夹的命名时间是limit_day之前,就需要归档
                if [ $differ -gt $limit_day ]
                then
                    #归档
                    #rm -rf $dir
                    echo "归档该文件:"$dir
                #else
                    #echo "保留该文件:"$dir
                fi
            else
                #echo "    2" $dir
                #不是时间格式的目录,继续遍历
                work $dir
            fi
        #else
            #不是目录不处理
            #echo "不处理文件:" $dir
        fi
    done
}

work $root_dir
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值