Как создать резервную копию SVN-репозитория с помощью rsnapshot, когда временные метки каждый раз различаются? - PullRequest
2 голосов
/ 08 февраля 2010

Я хочу иметь rsnapshot для резервного копирования локального репозитория SVN на диске на машине с Linux. Я знаю, что не могу просто создать резервную копию из файловой системы, поэтому перед каждым снимком я делаю копию с помощью 'svnadmin hotcopy'. Однако каждый раз, когда я делаю горячую копию, все полученные файлы имеют текущую метку времени, а не ту же метку времени, что и исходный файл. Это означает, что я теряю способность делать дисковое пространство для копирования при записи, экономя, что дает rsnapshot.

Одним из решений, о котором я подумал, является сценарий просмотра всех файлов в горячей копии ($ DEST) и для каждого файла x, установите метку времени на основе файла $ SOURCE / x. Я не знаю, есть ли способ заставить rsync сделать это в Linux (я знаю, что вы можете сделать это в Robocopy для Windows :) Я уверен, что это можно сделать с помощью find и touch.

Предложения, как это сделать, или другие решения, приветствуются. Я бы предпочел не использовать инкрементные svn-дампы, так как я хочу, чтобы каждый моментальный снимок на момент времени был полной копией репозитория в то время.

1 Ответ

0 голосов
/ 08 февраля 2010

Оказывается, что изменение временных меток для всех файлов было не таким сложным:

cd /var/local/backup/svn
find . -exec touch -r /data/src/svn/\{\} \{\} \;

Это гарантирует, что временные метки для файлов, которые существуют в резервном копировании в режиме горячего копирования, будут иметь ту же метку времени, что и их родительские.Это означает, что они должны обновляться только при обновлении оригинала.

...