tar 增量备份每次在 Dropbox 目录上使用时都会备份所有内容

tar 增量备份每次在 Dropbox 目录上使用时都会备份所有内容

我大约 10 个月前(2013 年 1 月 27 日)进行了增量备份,创建了一个 .snar 元数据文件。现在,当我尝试使用

tar --create --file=dropbox_incremental_1.tar --listed-incremental=dropbox_0.snar Dropbox

该命令只是重新备份所有内容。

我不是 Unix 时间戳方面的专家,但我注意到几乎所有目录的时间戳都比上次更改时更新得多。对于我的实际文件,它们看起来像这样:

Access: 2013-03-12 19:04:51.000000000 -0500
Modify: 2012-09-30 15:10:47.000000000 -0500
Change: 2013-03-12 19:04:51.306209672 -0500

“修改”时间戳似乎正确,但文件在他们声称的时间里肯定没有被更改(至少据我所知没有发生任何更改)。这些文件似乎仍进入增量存档。

这里发生了什么?有没有办法告诉 tar 查看“修改”时间戳?这不是它应该做的吗?

答案1

您没有提到文件系统/设备类型,但您可以尝试:

$ tar --create --no-check-device --file=dropbox_incremental_1.tar --listed-incremental=dropbox_0.snar Dropbox

另请参阅修复快照文件

答案2

Tar 确实看起来像是 mtime。但它也应该看起来像是 ctime,因为它处理文件的元数据(例如权限)。

我猜测是你的 dropbox 应用程序将 ctime 用于自己的目的,而你无法用它做任何事情。

更新:

您可以使用更新选项 -u 代替增量模式。它似乎忽略了 ctime。

答案3

最终,我找不到让 --listed-incremental 与 Dropbox 配合使用的方法。我猜,正如 Veniamin 所说,tar 会同时查看 ctime 和 mtime。Dropbox 必须执行一些与 ctime 相关的操作,因此每次运行它时,它都会导致整个存档得到备份。

相反,我只是做了 tar --create --file mybackup.tar --newer-mtime="26 Jan 2013" Dropbox

虽然它不如增量备份那么灵巧,但我还是很满意,因为它应该能获取自上次备份以来所有已更改的文件(基于 mtime)。在这种情况下,此备份是第三次备份,因此如果在进行此备份时发生意外,我很高兴只保留文件,处理不太灵巧的系统就没问题了。

感谢您的回复。

相关内容