zoukankan      html  css  js  c++  java
  • 删除超过多少天的日志文件或者备份文件

    一、删除超过7天的日志文件

      在有些生产环境下需要将服务器产生的日志文件进行定期的删除,因为日志文件随着时间的推移会占用大量的唱片空间,但是有些日志文件没必要保留很长时间,这样就需要进行删除,但是如果手动删除的话,工作量比较大,所以用脚本结合计划任务就可以定期的对日志文件进行删除,这里以超过7天的日志为例,一般用来删除备份文件,因为备份可能是每天都在生成,那些超一定日期的备份文件就没必要一直保存,可以进行删除。但是有些生产环境需要永久性的保存就没办法了。

    1.1、准备一些日志文件和常规文件放在一个目录里面

     1.2、删除修改时间超过7天的文件的脚本

    #!/bin/bash
    find /test/logs/ -name "*.log" -mtime +7 -exec rm -f {} ;           #查找日志目录下超过7天的以".log"结尾的日志文件并删除

     1.3、创建计划任务定点定期删除日志

     1.4、验证是否删除超过7天的日志

     二、总是保留最新的2分备份文件

       有些环境下,备份文件不是每天都备份,可能有些备份思路就是在周末不备份,或者节假日不备份,上面那种方案如果遇到放7天假的时候,因为只保留7天内的备份文件,结果因为7天没有备份,直接把所有的备份都给删除了。这不是破坏了备份机制吗?如果刚好放完7天假的后一天,数据丢失了,刚好备份文件全部被删除了。那数据就永远丢失了。所有才由下面这种方法,永远都会保留最新的2分备份文件。

    2.1、模拟备份机制

      在一个目录里面放一些备份文件和非备份文件

     

     2.2、保留最新2分备份的脚本

      思路:将备份目录下的备份文件依据时间进行降序排列,然后通过awk的行数来匹配大于2的文件,然后进行删除。ls -t 进行降序排序,ls -t /test/logs/*.log |awk 'NR>2' |xargs rm -f 将/test/logs/*.log进行排序,然后匹配到大于2行的文件。然后进行删除。

    脚本:

    #!/bin/bash
    ls -t /test/logs/*.log |awk 'NR>3' |xargs rm -f

     2.3、创建计划任务定点定期删除日志

     2.4、查看是否保留最新的2分备份文件

     这种方法,不管过了多长时间,有多长时间没有备份,都会保留最新的两份备份。

  • 相关阅读:
    ISTQB测试人员认证 初级(基础级)大纲
    5.2 测试计划和估算
    4. 测试设计技术
    V模型与测试级别
    1.3 Seven Testing Principles
    什么是DNS?
    总结SQL查询慢的50个原因
    CPU分几核几核的是什么意思?
    监控查询慢sql
    关于并发用户数的思考-通过PV量换算并发
  • 原文地址:https://www.cnblogs.com/mython/p/11910809.html
Copyright © 2011-2022 走看看