Опубликовано December 16, 2017

Rsync и резервное копирование системы

Мне удобно, когда операционная система содержит следующие разделы:

Раздел Точка монтирования LVM раздел
корневой / rootfs
загрузочный /boot -
домашний каталог /home home
данные и всякий хлам (фильмы, музыка и т.п.) /media/data mediadata
диски виртуальных машин /media/vms vms и vms_slow

Делаю резервную копию сделующих разделов:

Остальные разделы не содержат полезных данных, либо их легко восстановить.

Резервное копирование системы состоит из 3 этапов:

  1. Получение списка разделов
  2. Удаление устаревших и ненужных файлов перед резервным копированием
  3. Резервное копирование необходимых разделов

Получение списка разделов для резервного копирования

Список примонтированных в данный момент разделов можно узнать командой mount или lsblk.

Получение списка всех примонтированных разделов:

$ lsblk | grep -o '/.*'

Чистка ненужных файлов перед резервным копированием

Не нужно ничего чистить, если сильно лень или не важен размер резервной копии.

Используя ncdu можно найти и удалить ненужные файлы больших размеров. Например, кэш, tmp и т.п.

Копирование необходимых разделов

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

$ mkdir -p /mnt/backup/ && mount /dev/sdX /mnt/backup

Создаем директорию, в которой сохраним резервную копию и переходим в нее:

$ export BACKUP_PATH=$(date --iso-8601) && mkdir $BACKUP_PATH && cd $PACKUP_PATH

Копируем с помощью rsync разделы по очереди, задавая нужные SRC и DST переменные:

$ rsync --archive --acls --one-file-system --xattrs --verbose $SRC $DST

Сокращенная версия:

$ rsync -aAxXv $SRC $DST

Главное не забыть по завершении резервного копирования проверить все ли работает и валидна ли резервная копия. А в целом вместо rsync лучше использовать LVM снапшоты.