2

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

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

В идеале я хочу сжать резервную копию в тома объемом 500 МБ (или другого размера) и загрузить их в мое внешнее хранилище. При следующем резервном копировании большинство этих томов должно быть идентично предыдущему, за исключением тех, которые содержат файлы, которые были изменены с момента последнего резервного копирования. В этом случае мне нужно только загрузить измененные тома, сохраняя пропускную способность (и запросы на запись в файл).

Можно ли сделать то, что я описываю, используя комбинацию tar и gzip (может быть split)? Или другие инструменты командной строки?

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

Я хотел бы услышать любой вклад или предложение у вас С наилучшими пожеланиями M

1 ответ1

1

tar может сделать это с помощью --listed-incremental так что, как описано, я бы, вероятно, сделал это. Вы можете использовать любые компрессоры, которые поддерживает tar, чтобы сжать его (или просто пропустить через произвольный компрессор). См. Https://www.gnu.org/software/tar/manual/html_section/tar_39.html.

Я не уверен, что это за проекты, но если бы это был код или какой-то другой текстовый формат, я бы, вероятно, изучил использование git или какой-либо другой системы контроля версий.

Я должен также указать, что это GNU tar. Если вы используете BSD или другой Unix, вам может потребоваться установить gnutar потому что я не думаю, что bsdtar поддерживает это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .