Для проведения резервного копирования файлов в linux есть множество способов и инструментов. Всё зависит от постановки задачи. В нашем распоряжении как консольные утилиты, так и графические. Как создание полного бэкапа, так и инкременального. Как сохранение резервной копии на внешний жёсткий диск, так и передача файлов на сервер. Многое из этого уже описывалось, что-то описываться не будет совсем за неименеем возможности проверить инструкцию на практике. Сегодня же захотелось ещё раз вспомнить о rsync, ранее уже вскользь упоминавшемся. Коротко, в виде шпаргалки для себя.

Для начала следует установить rsync. Применительно к дистрибутиву Gentoo Linux выглядит это так:

# emerge -av rsync
net-misc/rsync-3.0.9-r2  USE="acl iconv -ipv6 -static -xattr"

Резервное копирование без отмонтирования разделов

Создание полной резервной копии пользовательского раздела:

# mkdir /home/backup-root
# rsync -PavHx /home/* /home/backup-root/
  • Разбор аргументов (см. man rsync):
  • -Pav — “стандартный джентльменский набор”: докачка оборванных файлов, сохранение прав доступа/времени;
  • -H — поддержка жёстких ссылок;
  • -x — не перескакивать через точки монтирования (если отдельно смонтированы /var, /usr, /boot, нужно будет их отдельно rsync’ать при создании бэкапа либо –exclude ‘sys/’ –exclude ‘proc/’ –exclude ‘home/*’)

  • Некоторые опции rsync:
  • -v –verbose — показать подробный вывод
  • -q –quiet — не показывать сообщения об ошибках
  • -c –checksum — выполнять проверку контрольных сумм
  • -a –archive — “архивный” режим. Уже содержит флаги -rlptgoD, не копирует жёсткие ссылки
  • -r –recursive — копируем рекурсивно
  • -b –backup — указание на создание бэкапа
  • -l –links — копирование симлинков
  • -z –compress — сжатие файлов во время передач
  • –daemon — запустить как rsync-демон
  • –stats — выдавать статистику по передаче файлов
  • –progress — показать % выполнения во время передачи
  • -p, –perms — сохранять разрешения
  • -g, –group — сохранять группу
  • -t, –times — сохранять время
  • -o, –owner — сохранять владельца (только root)
  • -D, –devices — сохранять файлы устройств (только root)
  • -S, –sparse — эффективно обработать фрагментированные файлы
  • –existing — только обновить те файлы, которые уже существуют
  • –ignore-existing — пропускать те файлы, которые уже существуют на приёмной стороне
  • –delete — удалять файлы, которых нет на передающей стороне
  • –delete-excluded — удалять файлы, которые исключены из списка копирования
  • –delete-after — удалять после копирования, а не до него
  • -R, –relative — использовать относительные пути
  • –partial — сохранять частично переданные файлы
  • –progress — показать процент выполнения во время передачи
  • -P — то же, что –partial –progress
  • -H, –hard-links — сохранять жесткие ссылки
  • -x, –one-file-system — не выходить за пределы файловой системы

При последующем обновлении бэкапа:

# rsync -PavHx --delete-after /home/* /home/backup-root/

Этот способ отлично подходит для периодического создания копии home-каталога. Запустив всего одну команду, мы можем не терять время на перезагрузку и нам не нужен livecd. Но делать полный бэкап системы этим способом не рекомендуется, лучше воспользоваться утилитой cp. ⤧  Следующая запись Ядерная физика для домохозяек v.3