rizloff
Linux

Бэкап домашней папки: rsync на второй диск

2 мин чтения

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

Одна команда

Второй диск примонтирован в /backup. Копирую так:

rsync -a --delete --exclude='.cache' /home/rizloff/ /backup/home/

-a сохраняет права, даты и ссылки и проходит по всем вложенным папкам. --delete удаляет из копии то, что удалено дома, иначе копия со временем распухает мусором. .cache не копирую: там миниатюры и кеш браузеров, гигабайты, которые не жалко.

Первый раз копируется все, это долго. Дальше rsync сравнивает и переносит только изменившиеся файлы, у меня это пара минут.

Слэш в конце

Самое частое место, где ошибаются, в том числе я. Слэш в конце исходного пути важен:

  • /home/rizloff/ — копируется содержимое папки;
  • /home/rizloff — копируется сама папка, и в /backup/home/ появится еще одна rizloff внутри.

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

rsync -an --delete --exclude='.cache' /home/rizloff/ /backup/home/

Каждую ночь

Чтобы не помнить об этом, добавил в cron. Открываем свое расписание:

crontab -e

и дописываем строку:

30 3 * * * rsync -a --delete --exclude='.cache' /home/rizloff/ /backup/home/

Каждый день в 3:30 ночи. Компьютер у меня часто остается включенным на ночь, так что успевает.

Чего это не заменяет

Это зеркало, а не архив. Удалил файл днем — ночью он пропадет и из копии. Для такого нужны копии по дням, это уже отдельная история. И второй диск стоит в том же компьютере: от пожара или кражи не спасет. Самое ценное раз в месяц копирую еще и на внешний диск, а можно и на другую машину по SSH с ключами, rsync это умеет.

Старый диск выкинул. Копия за ночь сделалась сама, проверил, открыл пару файлов из нее.

Что-то не сработало или нашли ошибку — напишите: rizloff@gmail.com или @rizloff в Telegram.