#!/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 "---脚本运行完成---"