【问题标题】:Backing up symlinks using AWS s3 sync使用 AWS s3 同步备份符号链接
【发布时间】:2018-05-07 17:55:42
【问题描述】:

我正在尝试使用 aws s3 sync 命令备份我们的系统,但是这将备份符号链接后面的整个目录(默认行为),或者根本不备份符号链接。

我想要一些备份符号链接的方法,以便在需要时可以从 S3 恢复。

我不想先存档整个目录,否则我将失去仅备份更改文件的能力。

我目前的想法是扫描目录中的符号链接,并创建包含符号链接目标的元数据文件,还原后可以读取这些文件以重建符号链接,但我不太确定如何执行此操作。

非常欢迎任何建议。提前致谢。

【问题讨论】:

    标签: amazon-web-services amazon-s3 synchronization aws-cli symlink-traversal


    【解决方案1】:

    S3 没有标准的方式来表示符号链接。请注意,您可以决定自定义表示,并将其存储在空 S3 对象的元数据中,但您需要自己做。 AFAIK,aws s3 不会那样做。

    现在,为了备份到 S3(和 Glacier),您可能需要查看 OpenDedup。它确实使用与 rsync 中使用的相同类型的滚动校验和来最小化实际使用的存储(和带宽)。

    我一直在做很多cp -rl 和rsync 自定义脚本来将我自己的系统备份到本地驱动器,但由于我可能有许多重复文件,我总是对不必要的额外存储感到沮丧。想象一下,当您重命名目录 (mv dirA dirB) 时,在这些简单方案中会发生什么:下一次备份通常会存储该目录的全新副本。

    使用 OpenDedup(和其他类似系统,例如 bup、zpaq 等),内容是唯一存储的(感谢滚动校验和方法)。我喜欢这样。

    【讨论】:

      【解决方案2】:

      目前,Amazon S3 不支持符号链接。从本地磁盘上传到 S3 时,它将跟随它们。根据 AWS 文档,符号链接的内容被复制或同步到符号链接的名称下。

      rsync 命令确实有符号链接选项。其中一个--copy-links 将准确复制目的地。因此,如果您的符号链接使用绝对路径(my/absolute/path),它将复制该路径,并且 S3 上的符号链接将指向您本地机器上的目录。如果您使用相对路径 (.../.../path),则符号链接将指向 S3 上的该路径。

      Rsync 将是一种在将文件恢复到本地机器后保留符号链接以供使用的方法。

      另一种方法是使用 AWS S3 同步或备份服务,例如 NetApp 的 Cloud Sync,它会在每次操作时对您的数据进行分类。每个服务提供商都提供不同的功能,因此如何处理符号链接取决于所选的供应商。

      【讨论】:

      • 注意现在有选项--follow-symlinks | --no-follow-symlinks,上传时默认跟随。
      猜你喜欢
      • 2013-01-15
      • 2019-08-31
      • 2018-11-15
      • 1970-01-01
      • 2017-10-29
      • 1970-01-01
      • 2023-03-30
      • 2016-12-29
      • 1970-01-01
      相关资源
      最近更新 更多