如何给网站开发挂,百度高搜,没网站可以做百度推广吗,嵌入式软件开发技术上一次我们建立了一个强大的备份系统 #xff0c;现在我们将研究如何监视备份集。 我们需要验证备份集是否已正确清理#xff08;这称为删除策略#xff09;以及它们是否一致#xff08;称为一致性策略#xff09;。 备份集可以包含多个文件集。 文件集是备份文件的集合现在我们将研究如何监视备份集。 我们需要验证备份集是否已正确清理这称为删除策略以及它们是否一致称为一致性策略。 备份集可以包含多个文件集。 文件集是备份文件的集合位于备份集的同一源目录下。 以下YAML配置显示了备份集和文件集的示例 backup-set-configs:
- name: Mikrotik Backupsuri: /volume1/backupftp/mikrotik_backuptype: DISKfile-set:- name: fe-prodnet01 exportfilterPattern: .*fe-prodnet01-.*\.rsc- name: fe-prodnet11 backupfilterPattern: .*fe-prodnet11.*\.backup
- name: Exchange Backupsuri: /volume1/pex/backupstype: DISKfile-set:- name: Exchange pstsfilterPattern: .*\.pstgroupByPattern: .*\/backups\/(\d{4}-\d{2}-\d{2})\/groupByPatternHasDatePattern: yyyy-MM-dddeletePolicy:deleteEmptyDirectories: true
- name: Proxmox Backupsuri: /volume1/proxmox/dumptype: DISKfile-set:- name: QEMU backupsfilterPattern: .*vzdump-qemu.*\.vma\.lzogroupByPattern: proxmox/dump/vzdump-qemu-(\d)-consistencyPolicy:numberOfBackupsRequired: 3- name: LXC backupsfilterPattern: .*vzdump-lxc.*\.tar\.lzogroupByPattern: proxmox/dump/vzdump-lxc-(\d)-consistencyPolicy:numberOfBackupsRequired: 3 第一个备份集位于/volume1/backupftp/mikrotik_backup目录下并包含两组文件。 当同一目录中有多个服务器的文件时通常将以这种方式进行配置。 如第三个示例所示还有另一种解决方案按服务器名称或任何标识符分组。 文件集具有name 该name只是GUI和filterPattern的逻辑名称。 无论目录树有多深此模式都将过滤备份集路径下匹配的所有文件。 删除策略和一致性策略将应用于文件按修改日期在磁盘上降序排列。 第二个备份集用于交换备份。 请注意在此示例中我们如何使用groupByPattern 。 这将通过groupByPattern所有过滤的文件名来自filterPattern groupByPattern 。 在这种情况下 groupByPattern也是日期模式由groupByPatternHasDatePattern指定。 我们将按照指定的日期模式最终得到一个按日期分组的文件集并且删除策略和一致性策略将按顺序将删除和一致性策略应用于匹配的文件分组日期。 第三个备份集用于Proxmox备份将文件存储在“转储”目录中并混合两种类型的备份。 QEMU和LXC备份分为两个文件集并按(\d)指定的VMID虚拟机标识符分组。 由于groupByPattern是十进制值而不是日期因此删除和一致性策略将按修改日期在磁盘上以降序排列的方式应用于匹配的文件。 请注意我们并不总是指定deletePolicy或consistencyPolicy 因为我们在这两个政策的合理的默认值。 它们都将针对每个备份集和其中的每个文件集执行。 deletePolicy具有两个配置设置 deleteEmptyDirectories 默认情况下处于禁用状态当您有一个groupByPattern作为日期值时此设置很有用。 当超过保留策略时该目录中的所有文件都将被删除从而为您留下一个空的“日期”目录。 在这种情况下您可以指定deleteEmptyDirectories 。 该目录只有在确实为空的情况下才会被清理以防其他日志文件徘徊。 deleteNumberOfBackupsLargerThan 默认值为30。对于每日备份这类似于30天。 如果您每周备份一次则表示保留政策为30周。 当然无论天数如何都可以根据需要更改此值。 它表示需要在磁盘上保留多少个文件集。 consistencyPolicy具有三个配置旋钮 numberOfBackupsRequired 默认值为7。即使我们在deletePolicy保留30个文件集我们也只需要7个文件集即可通过一致性。 如果是每日备份则意味着我们至少需要备份7天才能使文件集保持一致。 minimumFileSizeRequired 默认值为1。这意味着文件集中的每个文件必须至少为1个字节或更大。 这可以确保至少有东西在文件中。 您可以将其设置为更大或将其设置为0以禁用该检查。 numberOfDaysOfBackupsRequired 默认值为7。这将检查文件集中的最后一个文件按日期或修改时间降序排列至少比7天前更新。 组合所有设置可确保 文件集包含足够新的文件。 文件集的文件中至少写入了一些内容。 我们有一组跨一定时间的文件并且该时间不超过或不影响删除策略。 如果任何检查失败则文件集将失败。 如果文件集失败则备份集也会失败因此全局状态也将失败。 一致性策略和删除策略的实现都扩展了相同的抽象类AbstractFileVisitor 而后者又扩展了SimpleFileVisitorPath 。 该FileVisitor将循环备份集URI中的所有子目录两次首先执行删除策略然后执行一致性策略。 然后 AbstractFileVisitor将过滤与过滤器匹配的所有子目录中的所有文件并将它们放置在地图结构中。 为了完成此过程将循环映射结构并根据策略规则删除和验证文件。 您是否对我们的实施感到好奇 您是否希望分叉并修改我们的代码 在评论中大声喊叫我们可以谈谈我们解决方案的开源。 改进措施 可以随时进行改进这是我们头脑中的一些事情 在备份断开连接之前在源上添加MD5校验和。 在我们的应用程序中检查那些MD5校验和以确保我们的备份随时间推移保持一致。 在我们的应用程序的内存中解析档案.zip.tar.gz遍历文件条目看看是否到达档案的末尾 这应该排除损坏的.zip文件。 解析邮箱备份并遍历条目以查看存档是否未损坏。 将数据库备份发送到检查数据库是否可以还原的基础结构。 添加了远程检查备份的功能例如通过SSH登录到远程服务器并检查那里的备份是否也可用并保持一致对于某些异地备份方案很有用。 添加通过API检查备份的功能例如查看第三方系统上托管的AWS备份或Proxmox备份的状态。 翻译自: https://www.javacodegeeks.com/2018/05/monitoring-and-managing-your-backup-system.html