shell-整理目录下的备份文件并生成压缩包
2020-01-15 10:37
936 查看
背景:
CI构建下来的备份应用包在服务器上保留几十个,空间占用大,看着不好看,可能还用不着,所以准备正好练练手吧!
其实CI上可以设置少保留几个,但是我没管。我只是想练练脚本
先来看一下我的服务器源目录的文件夹放置:44个挺多的
再来看一下我的结果:
代码不长,但是shell我用的手生。语法都是靠查靠找。实在艰辛才凑起来的
整体思路:
1、找出符合日期的关键字的文件夹
2、移动1找出来的文件夹,然后压缩
这里我用了自定义输入时间的边界来循环执行,使所有时间都可以兼顾得到。
#!/bin/bash #这一批按日期打包mrobot_xsp_0601_1910 #需要处理的文件所在目录 FROM_FILE=/app/script/data #zip包存放目录 TO_ZIP=/app/script/bak #判断源文件目录是否为空 if test ! -d $FROM_FILE then mkdir -p $FROM_FILE fi #判断zip存放目录是否为空 if test ! -d $TO_ZIP then mkdir -p $TO_ZIP fi #从命令入参获取开始时间和结束时间 START_DATE=$1 END_DATE=$2 #查找开始获取START_DATE关键字名称的文件夹 while [ $START_DATE -le $END_DATE ] do #fileList=$(ls $FROM_FILE/* |grep "${START_DATE}") fileList=$(ls -l $FROM_FILE |awk '/^d/ {print $NF}'|grep "${START_DATE}") len=${#fileList[@]} if test $len -gt 0;then mkdir -p $TO_ZIP/$START_DATE #有此种需要备份的目录,进行数组for循环,把文件夹拷贝到bak里面,并进行归类压缩 for filename in ${fileList[@]} do if test -s $FROM_FILE/$filename ;then cp -rp $FROM_FILE/$filename $TO_ZIP/$START_DATE rm -rf $FROM_FILE/$filename fi done zip -rqm $TO_ZIP/${START_DATE}.zip $TO_ZIP/${START_DATE} fi #START_DATE+1还得继续 START_DATE=$(date -d "2018$START_DATE+1days" +%m%d) done
转载于:https://www.cnblogs.com/sincoolvip/p/9182850.html
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- shell-整理目录下的备份文件并生成压缩包
- Shell 命令行,生成当前文件夹目录索引 index.html 文件
- 生成zip压缩包,支持多目录,thinkphp
- 用Shell命令批量解压一个目录下分卷的压缩包到指定目录
- 使用shell删除目录下几天前生成文件方法
- shell实用脚本:整理目录文件
- Shell脚本生成目录树结构文本文件 -- Snippets
- 一套自己写的生成三级不重复目录的SHELL脚本
- 华为code craft软件精英赛笔记-如何在Linux下利用提供的shell文件生成tar.gz赛题提交压缩包
- centos 解压压缩包到指定目录
- 项目整理--如何动态生成表格
- (6)2.4之前的字符驱动-用devfs_register自动生成设备文件(可能在2.6linux目录树下编译不了)
- 拿到一个linux下的shell之后,有用的命令整理
- VB FSO自动生成N层目录!
- shell学习目录
- Linux下利用C/C++、shell脚本生成uuid
- python和shell处理数据的程序整理
- Hive 通过shell动态生成SQL
- shell判断hdfs文件目录是否存在
- word排版之生成目录页码不右对齐