使用AWS s3同步备份符号链接

时间:2017-11-23 17:43:47

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

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

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

我不想先归档整个目录,否则我将无法备份更改的文件。

我目前的想法是扫描dir的符号链接,并创建包含符号链接目标的元数据文件,恢复后可以读取它以重建符号链接,但我不太清楚如何这样做。

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

2 个答案:

答案 0 :(得分:1)

原样,S3没有表示符号链接的标准方法。请注意,您可以决定自定义表示形式,并将其存储在空S3对象的元数据中,但您可以自行处理。 AFAIK,aws s3不会这样做。

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

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

使用OpenDedup(以及其他类似系统,如bup,zpaq等),内容将被唯一存储(感谢滚动校验和方法)。我喜欢那样。

答案 1 :(得分:0)

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

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

Rsync是一种在将文件还原回本地框后保持符号链接使用的方法。

另一种方法是使用AWS S3同步或备份服务,例如NetApp的Cloud Sync,它将为每个操作编制数据目录。每个服务提供商都提供不同的功能,因此如何处理符号链接取决于所选的供应商。