Linux根据24小时生成文件夹脚本

#!/bin/bash

  echo"-----开始运行脚本-----"


#按天/按小时删除标志day hour
deleteByDayOrHour="hour"

#按小时删除,保留几小时的文件
deleteByHourRemain=0

#现在是几点
TIME_NOW=`date +%H`

#转换成整数
TIME_NOW_INT=`expr $TIME_NOW`

#删除今天几点以前的文件夹
TIME_Remain=$(($TIME_NOW_INT - $deleteByHourRemain ))
#echo $TIME Remain


#判断按天/按小时删除标志
if [ "$deleteByDayOrHour"="day" ]
then
  echo "按天删除文件夹" 
elif [ "$deleteByDayOrHour"="hour" ]
then
  echo "按小时删除文件夹"
fi


#今天的日期
DATE_NOW=`date +%Y%m%d`

#现在的日期和时间
DATE_TIME_NOW=`date +%Y%m%d_%H%M%$`

#获取前天的日期
DATE_2_DAYS_AGO=`date-d " -2 day$" +%Y%m%d`


#获取昨天的日期
DATE_1_DAY_AGO=`date -d "-1 day" +%Y%m%d`
#echo $DATE_1_DAY_AGO

#获取明天的日期
DATE_TOMMOROW=`date -d next-day +%Y%m%d`

#顶层目录
PRO_HOME=/home/ap/nud/upload

#目标目录
DEST PATH=${PRO_HOME}/

#日志目录
LOG PATH=${PRO_HOME}/log_deleteAndCreateDir

#日志文件
LOG_FILE={LOG_PATH}/log_deleteAndCreateDir_$DATE_NOW.log

if (( $deleteByHourRemain < 0 ))
then
deleteByHourRemain=0
fi


if (( $deleteByHourRemain > 24 ))
then
deleteByHourRemain=24
fi

#echo "" >> $LOG_FILE 2>&1

echo "开始运行脚本"_$DATE_TIME_NOW #>> $LOG_FILE 2>&1

#如果目标目录不存在,就创建目标日录
if test ! -d $DEST_PATH
then
 mkdir $DEST_PATH && echo $DEST_PATH "目标目录创建成功" #>> $LOG_FILE 2>&1
fi


#进入目标日录
cd $DEST_PATH

#创建文件夹
i=0
str=""

for (( i = 0; i <= 23; i++ ))
do
    #生成动态字符串.从00到23
        if (( $i < 10 ))
        then
            str="0"$i
        else
            str=$i
        fi
        
        if test ! -d $DATE_TOMMOROW$str
        then
            #创建文件夹-明天
            mkdir $DATE_TOMMOROW$str && echo $DATE_TOMMOROW$str "文件夹创建完成" #>> $LOG_FILE 2>&1
        else
            echo $DATE_TOMMOROW$str "文件夹已存在" #>> $LOG_FILE 2>&1
        fi
done

#删除前天的文件夹
i=0
str=""

for (( i =0; i <= 23; i++ ))
do
    #生成动态字符串.从0到23
        if (( $i < 10 ))
        then
            str="0"$i
        else
            str=$i
        fi
        
        if test -d $DATE_2_DAYS_AGO$str
        then
            #删除前天的目录及其内容
            rm -rf $PRO_HOME/$DATE_2_DAYS_AGO$str && echo $DATE_2_DAYS_AGO$str "文件夹删除完成" # >> $LOG_FILE 2>&1
        else
            echo $DATE_2_DAYS_AGO$str "文件夹不存在" #>> $LOG_FILE 2>&1
        fi
done

# 判断按天/按小时删除文件夹
if [ "$deleteByDayOrHour" == "day" ] #按天删除文件夹
then
    echo ""

elif [ "$deleteByDayOrHour" == "hour" ] #按小时删除文件夹
then
    #删除昨天文件夹
    i=0
    str=""

    for (( i = 0; i <= 23; i++ )) 
    do
        #生成动态字符串,从00剧23 
        if (( $i < 10 ))
        then
            str="0"$i
        else
            str=$i
        fi
        
        if test -d $DATE_1_DAY_AGO$str
        then
            #删除前天的目录及其内容
            rm -rf $PRO_HOME/$DATE_1_DAY_AGO$str && echo $DATE_1_DAY_AGO$str "文件夹删除完成" #>> $LOG_FILE 2>&1
        else
            echo $DATE_1_DAY_AGO$str "文件夹不存在" #>> $LOG_FILE 2>&1
        fi
    done
    


    #按小时删除今天的文件夹 
    i=0
    str=""

    for (( i = 0; i <= 23; i++ )) 
    do
        if (( $i < $TIME_Remain )) 
        then
            tempStr="" #echo "" 
        else
            break
        fi

    
        #生产动态字符串,从00到23 
        if (( $i < 10 )) 
        then
            str="0"$i
        else
            str=$i
        fi

        if test -d $DATE_NOW$str
        then
            #删除今天的目录及其内容
            rm -rf $PRO_HOME/$DATE_NOW$str && echo $DATE_NOW«$str "文件天删除完成" #>> $LOG_FILE 2>$1
        else
            echo $DATE_NOW$str "文件不存在" #>> $LOG_FILE 2>$1
        fi
    done
fi

echo " " #>> $LOG_FILE 2>$1

echo "脚本运行完成"_$DATE_TIME_NOW #>> $LOG_FILE 2>$1

echo "---脚本运行完成---"

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值