美文网首页
001-日志归档

001-日志归档

作者: mo371 | 来源:发表于2019-06-06 20:35 被阅读0次
#!/bin/bash
#auth morb
#date 20190606
#打包前一天的日志,并且清除30天前的日志压缩包
#打包日期格式,获取一天前日期
OLDDATE=`date -d '-1 days' +%Y-%m-%d`
OLDDATES=`date -d '-1 days' +%Y-%m-%d-%H%M%S`

SHELL_NAME="$0"
SHELL_DIR="/server/scripts"
SHELL_LOG="${SHELL_DIR}/${SHELL_NAME}.log"

CDATE=$(date "+%Y-%m-%d")
CTIME=$(date "+%H-%M-%S")

echo "========================" >> ${SHELL_LOG}

#脚本日志记录
writelog(){
        LOGINFO=$1
        echo "${CDATE} ${CTIME}: ${SHELL_NAME} : ${LOGINFO}" >> ${SHELL_LOG}
}

#日志文件目录
mk_logdir(){
    LOGDIR="/logs/gdmz"
    if [ ! -d $LOGDIR ];then
       mkdir -p $LOGDIR
    fi
    if [ $? -ne 0 ];then
    exit
    fi
    writelog "创建日志文件目录===》done";   
}

#日志备份目录
mk_bak_logdir(){
    LOGBAKDIR=/logs/oldlogs/$OLDDATES
    if [ ! -d $LOGBAKDIR ];then
       mkdir -p $LOGBAKDIR
    fi
    if [ $? -ne 0 ];then
    exit 
    fi
    writelog "创建日志备份目录===》done";

}

#将日志文件移动到备份目录,并打包,删除原文件
mv_tar_rm_logdir(){
    mv $LOGDIR/*${OLDDATE}.log  $LOGBAKDIR
    if [ $? -ne 0 ];then
    exit
    fi

    cd /logs/oldlogs
    tar -zcvf ${OLDDATES}.tar.gz $OLDDATES
    if [ $? -eq 0 ];then
    rm -rf $OLDDATES
    fi
    if [ $? -ne 0 ];then
    exit
    fi
    writelog "日志文件移动到备份目录,并打包,删除原文件录===》done";
}

#删除30天前的历史日志压缩文件
rm_log_tar_gz(){
    find /logs/oldlogs -name "*.tar.gz" -mtime +30 |xargs rm -rf
    if [ $? -ne 0 ];then
    exit
    fi
    writelog "删除30天前的历史日志压缩文件===》done";
}


main(){
            mk_logdir;
            mk_bak_logdir;
            mv_tar_rm_logdir;
            rm_log_tar_gz;
}
main $1
==================
效果:
[root@test scripts]# tail -f 2.sh.log 
========================
2019-06-06 01-02-16: 2.sh : 创建日志文件目录===》done
2019-06-06 01-02-16: 2.sh : 创建日志备份目录===》done
2019-06-06 01-02-16: 2.sh : 日志文件移动到备份目录,并打包,删除原文件录===》done
2019-06-06 01-02-16: 2.sh : 删除30天前的历史日志压缩文件===》done

相关文章

网友评论

      本文标题:001-日志归档

      本文链接:https://www.haomeiwen.com/subject/qufpxctx.html