VPS может выйти из строя, быть удалён по ошибке или сломан неудачным обновлением. Единственная защита — проверенная резервная копия. В этом руководстве настраиваются простые автоматизированные зашифрованные резервные копии с помощью бесплатных инструментов.
Правило 3-2-1
Храните 3 копии данных на 2 разных типах носителей и 1 копию в совсем другом месте. Для VPS это обычно означает рабочие данные, локальный снимок и внешнюю копию у другого провайдера или в другой стране.
Что копировать
- Файлы сайта и загрузки (
/var/www). - Базы данных, предварительно выгруженные в файл (никогда не копируйте файлы работающей базы данных).
- Конфигурация:
/etc/nginx, изменения в/etc, файлы Docker Compose и тома. - Задания cron и любые собственные скрипты.
Операционную систему можно переустановить за считанные минуты. Невозможно переустановить ваши данные и настройки.
Используйте restic для зашифрованных копий с дедупликацией
sudo apt install -y restic
export RESTIC_REPOSITORY=sftp:backup@other-server:/backups/vps1
export RESTIC_PASSWORD_FILE=/root/.restic-pass
restic init
Создайте файл с паролем, используя длинную случайную строку, и сохраните копию в надёжном месте. Если вы потеряете этот пароль, копии нельзя будет открыть. restic также поддерживает S3-совместимые хранилища, поэтому можно отправлять копии в любое объектное хранилище.
Скрипт резервного копирования
#!/bin/bash
set -e
export RESTIC_REPOSITORY=sftp:backup@other-server:/backups/vps1
export RESTIC_PASSWORD_FILE=/root/.restic-pass
mysqldump --single-transaction --all-databases | gzip > /var/backups/db.sql.gz
restic backup /var/www /etc /var/backups/db.sql.gz
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
Сохраните его как /usr/local/bin/backup.sh, сделайте исполняемым и запланируйте:
sudo chmod +x /usr/local/bin/backup.sh
echo "30 3 * * * root /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1" | sudo tee /etc/cron.d/backup
Проверьте восстановление
restic snapshots
restic restore latest --target /tmp/restore-test --include /etc/nginx
Резервная копия, которую вы ни разу не восстанавливали, — это всего лишь надежда. Проверяйте раз в квартал и всегда после любых изменений.
Снимки помогают, но их недостаточно
Снимки провайдера быстры и удобны перед рискованными изменениями, но они находятся у того же провайдера и в том же аккаунте. Считайте их удобством и храните независимую внешнюю копию.