我希望rsnapshot备份Linux机器上的本地磁盘SVN存储库。我知道我不能只是将它备份到文件系统之外,因此在每个快照之前,我使用'svnadmin hotcopy'制作副本。但是,每次执行hotcopy时,生成的文件都具有当前时间戳,而不是与原始文件相同的时间戳。这意味着我失去了保存rsnapshot所带来的写时复制磁盘空间的能力。
我想到的一个解决方案是让脚本查看hotcopy($ DEST)中的所有文件,对于每个文件x,根据文件$ SOURCE / x设置时间戳。我不知道是否有办法让rsync在Linux上这样做(我知道你可以在Windows上的Robocopy中做到这一点:)我确信它可以用find和touch来完成。
建议如何执行此操作或其他解决方案,欢迎。我宁愿不使用增量svn转储,因为我希望每个时间点快照都是当时存储库的完整副本。
答案 0 :(得分:0)
事实证明,更改所有文件的时间戳并不困难:
cd /var/local/backup/svn
find . -exec touch -r /data/src/svn/\{\} \{\} \;
这将确保热备份备份中存在的文件的时间戳与其父级具有相同的时间戳,这意味着只有在更新原始文件时才应更新它们。