Назад | Перейти на главную страницу

rsync для резервного копирования, но не хочу стирать (не стирать) диск

Не знаю, как задать этот вопрос без объяснения. Скажем, я использую rsync для резервного копирования с диска a на диск b. Диск-a выходит из строя, и все данные теряются, когда rsync отключился, он увидел, что диск-a был стерт, поэтому он стер диск-b.

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

Вы можете попробовать использовать rsnapshot. Это использует rsync для создания резервной копии на основе жестких ссылок. На сервере можно получить доступ к нескольким резервным копиям без потери места. Таким образом, когда ваш диск A стирается, данные будут «стерты» только в самой последней резервной копии, но старые снимки по-прежнему будут содержать данные.

Другое дело - использовать параметры --backup и --backup-dir непосредственно с rsync:

-b, --backup

С помощью этого параметра существующие файлы назначения переименовываются при передаче или удалении каждого файла. Вы можете контролировать, куда будет помещен файл резервной копии и какой суффикс (если есть) будет добавлен, с помощью параметров --backup-dir и --suffix.

Обратите внимание: если вы не укажете --backup-dir, (1) будет подразумеваться параметр --omit-dir-times, и (2) если --delete также действует (без --delete-excluded) , rsync добавит правило фильтра lqprotectrq для суффикса резервного копирования в конец всех существующих исключений (например, -f "P ~ "). Это предотвратит удаление ранее зарезервированных файлов. Обратите внимание, что если вы предоставляете свои собственные правила фильтрации, вам может потребоваться вручную вставить собственное правило исключения / защиты где-нибудь выше в списке, чтобы оно имело достаточно высокий приоритет, чтобы быть эффективным (например, если ваши правила определяют конечное включение / исключение oqcq, правило автоматического добавления никогда не будет достигнуто).

--backup-dir = DIR

В сочетании с параметром --backup это указывает rsync хранить все резервные копии в указанном каталоге на принимающей стороне. Это можно использовать для инкрементного резервного копирования. Вы можете дополнительно указать суффикс резервного копирования с помощью параметра --suffix (в противном случае файлы, резервные копии которых находятся в указанном каталоге, сохранят свои исходные имена).

О, вы можете настроить rsync, чтобы не удалять посторонние файлы. По умолчанию это не так. Так что, если все файлы исчезли с диска-a, все должно быть в порядке.

https://unix.stackexchange.com/questions/5451/delete-extraneous-files-from-dest-dir-via-rsync

В описанном вами сценарии (отказавший исходный диск) rsync будет не удалите что угодно, потому что:

  1. по умолчанию, rsync ничего не удаляет пока вы не передадите ему опцию "--delete"
  2. даже передав ему параметр "--delete", rsync не удалит файл назначения, если исходный диск недоступен. На странице руководства:

Если отправляющая сторона обнаруживает какие-либо ошибки ввода-вывода, удаление любых файлов в месте назначения будет автоматически отключено. Это сделано для предотвращения временных сбоев файловой системы (таких как ошибки NFS) на отправляющей стороне, вызывающих массовое удаление файлов в месте назначения. Вы можете изменить это с помощью опции --ignore-errors.

Единственный способ получить очищенную цель после сбоя источника - это:

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

В любом случае, я поддерживаю предложение использовать жесткие ссылки rsnapshot +. Я использую эту настройку для резервного копирования, и это очень удобно.