一、删除超过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分备份文件
这种方法,不管过了多长时间,有多长时间没有备份,都会保留最新的两份备份。