zoukankan      html  css  js  c++  java
  • 18项目实战_保留最近N天的备份文件

    项目实战_保留最近N天的备份文件

    需求

    [需求1]:定期删除/data目录下修改时间的大于7天的文件
    
    [需求2]:定期清理/data/YY-MM-DD.tar.gz
    
      该目录仅工作日周一至周五自动生成文件YY-MM-DD.tar.gz 
    
      希望只保留最近2天的备份文件
    
      无论过几个节假日/data仍会有前两个工作日的备份文件
    

    需求分析与处理

    需求分析

    1.定期删除/data目录下修改时间的大于7天的文件  
    ==> `使用find找到修改时间大于7天的,通过xargs/exec执行删除`
    
    2.定期清理/data/YY-MM-DD.tar.gz
    
      该目录仅工作日周一至周五自动生成文件YY-MM-DD.tar.gz 
    
      希望只保留最近2天的备份文件
    
      无论过几个节假日/data仍会有前两个工作日的备份文件
    ==> `核心就是保留最新的两个备份文件,ls -t可以通过修改时间进行排序,最新的放在最前面,通过awk进行分割,使用xargs/exec执行删除第3个开始的文件`
    

    需求1

    脚本内容

    [root@hadoop04 ~]# vim /tmp/delete_backup.sh
    #!/usr/bin/env bash
    
    # 定义备份目录
    backup_dir=/data
    
    # 删除超过7天的文件
    find "${backup_dir}" -mtime +7 | xargs rm -f
    

    脚本执行

    # 添加执行权限
    [root@hadoop04 ~]# chmod +x /tmp/delete_backup.sh
    # 设置不允许对脚本文件进行任何的修改,文件不能删除,不能更改,不能移动
    [root@hadoop04 ~]# chattr +i /tmp/delete_backup.sh
    # 根据实际情况创建定时任务
    [root@hadoop04 ~]# crontab -e
    * * * * * /tmp/delete_backup.sh
    

    需求2

    脚本内容

    [root@hadoop04 ~]# vim /tmp/delete_backup_file.sh
    #!/usr/bin/env bash
    
    # 定义备份目录
    backup_dir=/data
    
    # 保留最新的两个备份文件
    ls -t ${backup_dir}/*.tar.gz | awk 'NR>2' | xargs rm -rvf
    # ls -t ${backup_dir}/*.tar.gz | awk 'NR>2{print "rm -rf " $0}' | bash
    

    脚本执行

    [root@hadoop04 ~]# chmod +x /tmp/delete_backup_file.sh
    [root@hadoop04 ~]# chattr +i /tmp/delete_backup_file.sh
    # 根据实际情况创建定时任务
    [root@hadoop04 ~]# crontab -e
    * * * * * /tmp/delete_backup.sh
    
  • 相关阅读:
    朴灵:基于MongoDB与NodeJS构建物联网系统
    平均年薪40万!为什么却很少见程序员炫富?
    写春联、变魔术、模仿马云唱歌_为你揭秘阿里云人工智能ET背后的技术
    Mysql查询性能优化-善用Explain语句
    numpy linspace arange函数
    vim笔记
    redis压缩列表
    tensorflow笔记之反向传播时用到的几种方法
    损失函数
    kafka 修改partition,删除topic,查询offset
  • 原文地址:https://www.cnblogs.com/ElegantSmile/p/12370388.html
Copyright © 2011-2022 走看看