#取系统时间
LOGBACKUPDATE=`date "+%Y-%m-%d"`
echo $LOGBACKUPDATE
BACKYEAR=`echo $LOGBACKUPDATE|awk -F'-' '{print $1}'`
BACKMONTH=`echo $LOGBACKUPDATE|awk -F'-' '{print $2}'`
BACKDAY=`echo $LOGBACKUPDATE|awk -F'-' '{print $3}'`
YEAR=$BACKYEAR
MONTH=`echo $BACKMONTH | sed 's/^0//g'`
DAY=`echo $BACKDAY | sed 's/^0//g'`
#$NUM1为保留日 7天或者3天
YEARDAY () {
#判断闰年
#标准如果能被400整除那么为闰年
#如果能被4整除且不能被100整除那么是闰年
if [ $# -ne 1 ];then
echo "Usage: $0 year"
exit 1;
fi
FYEAR="$YEAR"
if [ `expr ${FYEAR} % 400` -eq 0 ];then
FRUN="366"
else
if [ `expr ${FYEAR} % 4` -eq 0 ];then
if [ `expr ${FYEAR} % 100` -eq 0 ];then
FRUN="365"
else
FRUN="366"
fi
else
FRUN="365"
fi
fi
echo "$FRUN"
exit 0;
}
#定义DOY函数
DOY () {
#MD表示
MD=0
#天数累计
MDTOTAL=0
NUM1=1
if [ $DAY -gt $NUM1 ]
then
#超出保留日日期
DAY=`expr $DAY - $NUM1`
else
while [ 1 ]
do
MONTH=`expr $MONTH - 1`
[ $MONTH -le 0 ] && { MONTH=12 ; YEAR=`expr $YEAR - 1` ; }
case $MONTH in
1|3|5|7|8|10|12 ) DAYADD=31
;;
4|6|9|11 ) DAYADD=30
;;
2 )if [ $(YEARDAY $YEAR) = 366 ]
then DAYADD=29
else DAYADD=28
fi
;;
esac
DAY=`expr $DAY + $DAYADD`
[ $DAY -gt $NUM1 ] && { DAY=`expr $DAY - $NUM1` ; break ; }
done
fi
[ $DAY -lt 10 ] && { DAY="0"`expr $DAY` ; }
[ $MONTH -lt 10 ] && { MONTH="0"`expr $MONTH` ; }
RMDATE="$YEAR-$MONTH-$DAY"
echo "按要求取得删除日期:$RMDATE"
}
DOY