我正在尝试使用该aws s3 sync
命令备份我们的系统,但是这将备份符号链接后面的整个目录(默认行为),或者根本不备份符号链接。
我想要某种备份符号链接的方法,以便在需要时可以从 S3 恢复它。
我不想先存档整个目录,否则我将失去仅备份更改文件的能力。
我目前的想法是扫描目录中的符号链接,并创建包含符号链接目标的元数据文件,还原后可以读取这些文件以重建符号链接,但我不太确定如何执行此操作。
任何建议都会非常受欢迎。提前致谢。
我正在尝试使用该aws s3 sync
命令备份我们的系统,但是这将备份符号链接后面的整个目录(默认行为),或者根本不备份符号链接。
我想要某种备份符号链接的方法,以便在需要时可以从 S3 恢复它。
我不想先存档整个目录,否则我将失去仅备份更改文件的能力。
我目前的想法是扫描目录中的符号链接,并创建包含符号链接目标的元数据文件,还原后可以读取这些文件以重建符号链接,但我不太确定如何执行此操作。
任何建议都会非常受欢迎。提前致谢。
照原样,S3 没有标准的方式来表示符号链接。请注意,您可以决定自定义表示,并将其存储在空 S3 对象的元数据中,但您需要自己做。AFAIK,aws s3
不这样做。
现在,为了备份到 S3(和 Glacier),您可能需要查看OpenDedup。它确实使用与 rsync 中使用的相同类型的滚动校验和来最小化实际使用的存储(和带宽)。
我一直在做很多自定义脚本cp -rl
来rsync
将我自己的系统备份到本地驱动器,但由于我可能拥有许多重复文件,我总是对不必要的额外存储感到沮丧。想象一下,当您重命名目录 ( mv dirA dirB
) 时,在这些简单方案中会发生什么:下一次备份通常会存储该目录的全新副本。
使用 OpenDedup(和其他类似系统,例如 bup、zpaq 等),内容是唯一存储的(感谢滚动校验和方法)。我喜欢。
目前,Amazon S3 不支持符号链接。从本地磁盘上传到 S3 时,它将跟随它们。根据 AWS 文档,符号链接的内容被复制或同步到符号链接的名称下。
该rsync
命令确实具有符号链接的选项。其中之一--copy-links
将准确复制目的地。因此,如果您的符号链接使用绝对路径(my/absolute/path),它将复制该路径,并且 S3 上的符号链接将指向您本地机器上的目录。如果您使用相对路径 (.../.../path),则符号链接将指向 S3 上的该路径。
Rsync 将是一种在将文件恢复到本地机器后保留符号链接以供使用的方法。
另一种方法是使用 AWS S3 同步或备份服务,例如 NetApp 的Cloud Sync,它会在每次操作时对您的数据进行编目。每个服务提供商都提供不同的功能,因此如何处理符号链接取决于所选的供应商。