(图片来源网络,侵删)
这是一个非常常见的备份需求,备份一些重要目录并排除某些不必要的目录,将其压缩归档到指定的目录下并仅保留最近的5次备份一个非常简单的脚本就可以实现这个功能,林哥带着大家一起写脚本·首先需要指定脚本的解释器,随后通过if判断用于保存归档的目录是否存在,如果不存在则创建这个目录·接着使用一个for循环来查找指定的文件并删除只保留最近的5个文件·最后使用tar命令在归档目录下创建备份文件,指定要备份的目录和需要排除的目录即可整个脚本就这么简单,比较不好理解的部分是for循环如何做到只保留最近5个文件举个例子:现在目录下有9个文件,通过find命令查找这些文件并降序排列,然后通过tail命令指定从最上面的第5行开始显示到结尾,可以看到打印了一些文件,注意这些文件是要被删除的,所以当这些文件被删除后只剩下4个文件被保留下来,可以看到这4个文件都是最新的为什么是保留5个文件?因为脚本最后使用tar命令创建了一个文件加上保留的4个文件,总共5个此外考虑到由于备份通常会有很多文件,在压缩算法的选择上使用XZ算法更好,然后通过exclude选项来指定排除的目录注意如果有多个目录需要指定多个exclude选项现在就可以通过crontab计划任务配合来实现周期备份并自动轮转这里演示每间隔5分钟执行一次备份脚本,可以看到最旧的文件变成16:55,等待5分钟后此处做了剪辑处理,可以看到最旧的文件变成4:00,并且目录下仅保留5个文件获取脚本可以进入粉丝群,关注我学习实用运维技能
0 评论