`

Shell每天定时打包日志文件

阅读更多

该脚本的作用是每天将应用程序目录下的analyzed目录下前一天的日志压缩并保存到archive目录下,目录结构类似archive/2011/02/22.tar.gz

 

添加cronjob

1 1 * * * /opt/etc/log/archive.sh /opt/var/log/prod >> /opt/etc/log/archive.log
 

 

archive.sh

#!/bin/bash

if [ $# -eq 0 ]
then
        echo "Usage: `basename $0` /opt/var/log/prod"
        exit $E_BADARGS
fi

APP_PATH=$1
APP_LIST_FILE=appList
ANALYZED_FOLDER=analyzed
ARCHIVE_FOLDER=archive
echo 'App path: '$APP_PATH

##Save apps to file
>$APP_LIST_FILE
ls -F $APP_PATH|grep /$ >> $APP_LIST_FILE ##将目标目录下的应用程序名字保存起来

##Archive log of apps by day
LAST_DAY_YEAR=$(date -d last-day +%Y)
LAST_DAY_MONTH=$(date -d last-day +%m)
LAST_DAY_DAY=$(date -d last-day +%d)
echo 'Last day: '$LAST_DAY_YEAR$LAST_DAY_MONTH$LAST_DAY_DAY
cat $APP_LIST_FILE | while read line; do
        CURRENT_APP_PATH=$APP_PATH/$line
        echo 'Current app path: '$CURRENT_APP_PATH
        mkdir -p "$CURRENT_APP_PATH/$ARCHIVE_FOLDER"
        ##Move last day logs
        mkdir -p "$CURRENT_APP_PATH/$ARCHIVE_FOLDER/$LAST_DAY_YEAR/$LAST_DAY_MONTH/$LAST_DAY_DAY"
        LOG_FILES=$CURRENT_APP_PATH/$ANALYZED_FOLDER/$LAST_DAY_YEAR-$LAST_DAY_MONTH-$LAST_DAY_DAY"*"
        mv $LOG_FILES $CURRENT_APP_PATH/$ARCHIVE_FOLDER/$LAST_DAY_YEAR/$LAST_DAY_MONTH/$LAST_DAY_DAY
        ##Compress logs
        ZIPPED_FILE=$LAST_DAY_DAY".tar.gz"
        cd $CURRENT_APP_PATH/$ARCHIVE_FOLDER/$LAST_DAY_YEAR/$LAST_DAY_MONTH
        tar czf $ZIPPED_FILE $LAST_DAY_DAY
        rm -rf $LAST_DAY_DAY
done

exit 0
 
分享到:
评论

相关推荐

    Linux备份到FTP并保留7天内数据.txt

    自己编写的一个脚本,供大家用来学习和备份。采用zip压缩,个人感觉比tar好些,因为tar不识别中文目录、中文文件名导致变成乱码。备份保留本地最新3份备份,并且保留FTP最新7份,顺便鄙视下网上很多备份脚本都是复制...

    FlexBuild 3.0

    增加自动构建功能,可指定每天或每周定时构建 增加设置对话框,大部分设置多可以在里头完成 修改source文件格式 增加Visual C++ 6.0/2003/2005/2008/2010、mingw、intel、borland c++ builder的内建支持,将编译器从...

    Linux命令笔记

    1:日志文件的命名规则 2:logrotate配置文件 3:把apache日志加入轮替 4:logrotate日志轮替 语法 logrotate [选项] 配置文件名 rsyslogd-日子服务 1:日志文件格式 2:/etc/rsyslog.comf配置文件 第九部分:...

    大数据采集及ETL数据清洗实现(全套视频+课件讲义+代码)

    常见网站日志生成过程业务详解 ...定时调度Shell脚本实现日志数据分区上传HDFS ETL实现思路分析 ETL中Driver类的实现 ETL中自定义Key的实现 ETL日志解析类的代码实现 ETL开发Mapper代码开发实现 ETL程序打包测试

    企业后台管理基础框架 hsweb.zip

    代码生成器: 在线生成代码,打包下载.可自定义模板.定时任务: 配置定时任务,使用动态脚本编写任务内容.系统监控: 监控系统资源使用情况.缓存监控: 监控缓存情况.访问日志: 记录用户每次操作情况未来:组织架构管理: ...

    白金远控2009年可用版

    6.控制端定时清除显示在控制窗口中但已无效的连接(假重复上线) 2009.4.1 修正上次发布的界面方面的几个bug,release编译开启优化,速度和文件大小都有明显提高,稳定性请大家测试 2009.4.15 1.*重新设计TCP保活和...

    vc++ 应用源码包_1

    它包括客户端和服务端,客户端软件主要作用是监测本主机的活动,并将监测到的信息定时发送给服务器。服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理。...

    vc++ 应用源码包_2

    它包括客户端和服务端,客户端软件主要作用是监测本主机的活动,并将监测到的信息定时发送给服务器。服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理。...

    vc++ 应用源码包_6

    它包括客户端和服务端,客户端软件主要作用是监测本主机的活动,并将监测到的信息定时发送给服务器。服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理。...

    vc++ 应用源码包_5

    它包括客户端和服务端,客户端软件主要作用是监测本主机的活动,并将监测到的信息定时发送给服务器。服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理。...

    vc++ 应用源码包_3

    它包括客户端和服务端,客户端软件主要作用是监测本主机的活动,并将监测到的信息定时发送给服务器。服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理。...

    vc++ 开发实例源码包

    它包括客户端和服务端,客户端软件主要作用是监测本主机的活动,并将监测到的信息定时发送给服务器。服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理。...

    dnmp:docker-compose部署LNMP环境NginxOpenresty,MySQL5.7,PHP7.4(5.6),Redis5.0,PHPMyAdmin,Xdebug,RabbitMQ,Nacos

    :open_book:目录Nginx日志定时备份和删除容器时间跟主机机时间不一致Mysql自动备份脚本Docker简介Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行...

    Cloud-N1-OpenWrt:Github Actions自动编译OpenWrt固件(适配Phicomm N1)

    云编译N1 OpenWrt固件更新日志20201124修正set-env有效产生的编译错误20200926修正openclash编译错误20200727 docker兼容性造成编译错误,暂不集成说明:本项目使用Github Actions下载的Openwrt仓库,进行云编译。...

Global site tag (gtag.js) - Google Analytics