Бэкап домашней папки: 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 это умеет.
Старый диск выкинул. Копия за ночь сделалась сама, проверил, открыл пару файлов из нее.