随笔 - 137  文章 - 1  trackbacks - 0
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿

随笔分类

随笔档案

收藏夹

调试技巧

搜索

  •  

最新评论

阅读排行榜

评论排行榜

#!/bin/sh
if [ $# -lt 3 ];
then
    echo "参数个数错误:log_path dst_path timeout_day, 例子: ./log ./backup 3"
    exit
fi

#策略:3天前移动到备份并压缩

LOG_PATH=$1
DST_PATH=$2
BACKUP_LOG_DATE=`date -d "$3 day ago" +"%Y%m%d"`
echo $LOG_PATH $DST_PATH $BACKUP_LOG_DATE

function FuncTryMkdir()
{
    # 创建备份目录
    if test -d $1
    then
        #echo "已存在目标文件夹:"$1
        return
    else
        mkdir $1
    fi
}

FuncTryMkdir $DST_PATH

#遍历并移动过期日志文件
for FILE_NAME in $LOG_PATH/*
do
    BASE_NAME=`basename $FILE_NAME`
    DATA_DIR=${BASE_NAME:0-11:8}

    #N天前的文件,创建目录,并移动
    if (("$DATA_DIR" < "$BACKUP_LOG_DATE"));then
        BACKUP_DIR=$DST_PATH"/"$DATA_DIR"/"
        FuncTryMkdir $BACKUP_DIR
        mv $FILE_NAME $BACKUP_DIR
    fi
done

#遍历备份并压缩
cd $DST_PATH
for FILE_NAME in ./*
do
    if test -d $FILE_NAME
    then
        BASE_NAME=`basename $FILE_NAME`
        tar czf $BASE_NAME.tar.gz $BASE_NAME
        rm -rf $BASE_NAME
    fi
done
posted on 2020-10-15 19:01 长戟十三千 阅读(497) 评论(0)  编辑 收藏 引用 所属分类: 环境配置

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理