Краткий ответ: rsync копирует каталоги через SSH и после первого запуска передаёт только изменения. Одна команда вроде rsync -avz /var/www/ user@storage:/srv/backups/www/ — это уже рабочий бэкап; добавляйте --delete, исключения и датированные снапшоты по мере роста.
Обзор
rsync — рабочая лошадка Linux-бэкапов: предустановлен почти везде, экономен к каналу и легко скриптуется. Этот гайд покрывает флаги, которые имеют значение, что включать и исключать, и трюк с жёсткими ссылками, превращающий простое зеркало в экономные снапшоты на момент времени.
Что нужно иметь
- SSH-доступ к цели бэкапов, в идеале Storage VPS с аутентификацией по ключу.
- Список каталогов, которые реально держат состояние: обычно
/etc,/var/www,/home, дампы баз данных. - rsync с обеих сторон:
apt install rsync(Debian/Ubuntu) илиdnf install rsync(AlmaLinux/Rocky).
Пошаговая инструкция
- Начните с пробного запуска, чтобы увидеть, что будет скопировано:
rsync -avzn /var/www/ [email protected]:/srv/backups/www/ - Выполните реальную передачу (уберите
n):rsync -avz /var/www/ [email protected]:/srv/backups/www/-aсохраняет права/владельцев/время,-vпоказывает прогресс,-zсжимает при передаче. - Исключите мусор, тратящий место:
rsync -avz --exclude 'cache/' --exclude '*.tmp' /var/www/ [email protected]:/srv/backups/www/ - Зеркальте удаления только тогда, когда держите и снапшоты —
--deleteделает копию точной, но сам по себе убирает вашу страховку. - Снапшоты с жёсткими ссылками — неизменённые файлы не стоят места:
TODAY=$(date +%F) rsync -avz --delete --link-dest=/srv/backups/www-latest \ /var/www/ [email protected]:/srv/backups/www-$TODAY/ ssh [email protected] "ln -sfn /srv/backups/www-$TODAY /srv/backups/www-latest"
Типичные проблемы
- Путаница с конечным слешем:
/var/www/копирует содержимое,/var/www— сам каталог внутрь цели; выберите одну конвенцию и держитесь её. - Базы данных скопированы вживую: сначала дампите их через
mysqldump/pg_dump; сырые копии datadir чаще повреждены, чем нет. - Пропущенные root-файлы: запускайте задачу от пользователя, который может прочитать всё, что бэкапится, или осторожно используйте sudo.
Когда обращаться в поддержку
rsync — стандартный инструмент Linux; но если передачи на ваш Cloud2Y Storage VPS зависают или сеть стабильно рвётся посреди синхронизации, откройте тикет с временными метками и IP обоих серверов.
Частые вопросы
Что на самом деле делают флаги rsync -avz?
Флаг -a сохраняет права, владельцев и временные метки и идёт рекурсивно; -v печатает, что передаётся; -z сжимает данные в пути, что ускоряет передачи через интернет.
Стоит ли использовать опцию --delete в rsync?
Только когда вы также держите датированные снапшоты. С --delete цель зеркалит каждое удаление, так что сам по себе он охотно разносит вчерашнюю ошибку на вашу единственную копию.
Как снапшоты с жёсткими ссылками экономят место?
С --link-dest неизменённые файлы в новом датированном каталоге являются жёсткими ссылками на предыдущий снапшот, так что каждая ночь стоит только размер изменённых файлов, а выглядит как полная копия.
Похожие статьи
- Как настроить бэкапы на Storage VPS
- Как автоматизировать бэкапы через cron
- Политика хранения бэкапов: объяснение
- Как шифровать бэкапы
Готовы начать? Заказать Storage VPS в Cloud2Y →
