Rsync и резервное копирование системы
Мне удобно, когда операционная система содержит следующие разделы:
Раздел | Точка монтирования | LVM раздел |
---|---|---|
корневой | / | rootfs |
загрузочный | /boot | - |
домашний каталог | /home | home |
данные и всякий хлам (фильмы, музыка и т.п.) | /media/data | mediadata |
диски виртуальных машин | /media/vms | vms и vms_slow |
Делаю резервную копию сделующих разделов:
- /
- /home
- /media/data
Остальные разделы не содержат полезных данных, либо их легко восстановить.
Резервное копирование системы состоит из 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 снапшоты.