gsutil “将 mtime 从 src 复制到 dst”已经移动源文件了吗?

gsutil “将 mtime 从 src 复制到 dst”已经移动源文件了吗?

我使用 gsutil 将照片从专用盒备份到 Google 近线存储。

最近,我将我的所有照片从那个专用盒子移到了一个新的专用盒子中。我确保使用相关的存档 rsync 标志,以避免更改文件 mtimes。

我刚刚在新盒子上第一次运行 gsutil,然后就走了,并希望它只移动以前未备份的任何新文件。

gsutil -m rsync -r /originals/. gs://my-bucket

但我回来后发现输出包含数百行

Copying mtime from src to dst for gs://my-bucket/photo123456.jpg

我可以(通过ls -ltu)看到,当我移动文件时,上次访问的时间受到了影响,但修改时间没有受到影响,并且在本例中显示的是 2010 年的日期。

我暂时取消了该作业。我做错了什么?我可以修复这个问题,让它不再尝试对所有 300 万个文件执行此操作吗?

进一步检查后,我发现近线备份文件的修改日期为 2015 年,即最初备份的日期。今天产生消息的文件现在显示的日期是今天的。

为什么会发生这种情况?自最初备份文件以来,备份作业已运行 1000 次,且未覆盖文件修改时间,那么为什么现在不顺利呢?

我想知道是否是因为我现在正在运行较新版本的 gsutil?

答案1

Stack Overflow 问题使用-c带有gsutil rsync帮助的选项。此选项:

如果源文件和目标文件的大小匹配,则使 rsync 命令计算并比较文件的校验和(而不是比较 mtime)。如果 src_url 或 dst_url 位于本地文件系统上,则此选项会增加本地磁盘 I/O 和运行时间。

(来源:GCP 文档

相关内容