Перейти к основному содержанию Перейти к навигации Перейти к нижнему колонтитулу

Скачивание резервных копий

Копирование зашифрованного образа репозитория в локальный каталог или на внешний диск, обновление его на месте при следующих запусках либо сборка прямо из хранилища резервных копий без какой-либо машины.

Скачивание резервных копий

rdc backup download хранит копию зашифрованного образа репозитория в локальном каталоге или на внешнем диске. Копия представляет собой тот же шифротекст, что лежит на машине, поэтому по пути ничего не расшифровывается. Учётные данные, открывающие образ, остаются в конфигурации, так что надёжнее всего сохранить их через регистрацию в config storage. Без этих данных образ не открыть.

Источников два. По умолчанию используется работающая машина. Второй источник, хранилище резервных копий, выбирается флагом --store.

Скачивание с машины

rdc backup download mail@prod --to /mnt/usb

--to указывает существующий каталог с правом записи. Он никогда не создаётся, поэтому диск нужно смонтировать заранее. Образ попадает в <machine>/<name>.<tag>.img, рядом с ним создаётся файл .state.json.

Каждый запуск делает свежий снимок репозитория, который существует только на время передачи, отправляет различия через rsync и сравнивает sha256 результата со снимком на машине.

ФлагДействие
--all -m <machine>Скопировать все grand-репозитории, размещённые на машине
--include-forksВместе с --all скопировать и форки
--bwlimit <rate>Ограничить пропускную способность сети, например 100Mbps или 12.5M
--checkpointСделать checkpoint и заморозить репозиторий перед снимком (горячее резервное копирование)
--retries <n>Повторные попытки внутри запуска после сбоя сети (по умолчанию 3)
--skip-verifyПропустить сравнение sha256; собственная контрольная сумма rsync всё равно выполняется
--skip-space-checkПредупредить вместо отказа, если на целевом диске может не хватить места

Обновление копии

Повторный запуск обновляет существующий образ на месте с помощью дельты rsync. Еженедельный запуск отправляет только изменившееся, а целевому диску нужно место под одну копию образа, а не под две. Перед началом запуска свободное место сравнивается с размером образа, а --skip-space-check превращает отказ в предупреждение.

Прерванные запуски и возобновление

Файл состояния хранит status. Значение равно incomplete с момента до записи первого байта и до проверки запуска, а образ со статусом incomplete непригоден к использованию. Ctrl-C, потеря соединения или принудительно завершённый процесс оставляют его в таком состоянии. Повторный запуск той же команды возобновляет передачу, и отправляются только различия. Команда завершается с кодом 0, когда статус становится complete.

Требования

Для передачи на этом компьютере нужен rsync версии 3.1.3 или новее, запасного варианта через SFTP нет. Дистрибутивы Linux поставляют его в комплекте. В macOS команда brew install rsync заменяет встроенный openrsync, который не справляется с передачей. В Windows устанавливается MSYS2 с пакетом rsync либо используется приложение для рабочего стола.

Внешние диски

Что поместится, определяет файловая система целевого диска.

  • FAT32 не вмещает файл больше 4 GiB, и команда отказывается от запуска.
  • exFAT без поддержки разреженных файлов хранит образ в полном кажущемся размере, поэтому проверка свободного места учитывает именно его.
  • Снимок copy-on-write, сделанный локально для целевого диска (btrfs, ZFS, APFS), сохраняет прежние версии образа. Каждое обновление на месте тогда стоит изменённых блоков сверх старых.

Скачивание из хранилища резервных копий

export REDIACC_TOKEN=<api-token>
rdc backup download mail --store --to /mnt/usb

--store собирает образ прямо из хранилища чанков, без участия машины. Токену в REDIACC_TOKEN нужны scope backup:read и backup:restore. Вход через CLI никогда не даёт backup:restore, поэтому токен создаётся на странице API Tokens портала. Он должен принадлежать команде и быть создан действующим владельцем или администратором организации.

--store принимает ровно одно имя репозитория. Флаги -m, --checkpoint, --all, --include-forks, --bwlimit, --retries, --skip-verify и --skip-space-check с ним не используются: у загрузки из хранилища своё возобновление, и она проверяет каждый чанк.

Образ записывается в <dir>/<name>.<tag>.img. Прерванная загрузка сохраняет частичную копию, и та же команда продолжает с неё.

Выбор снимка через --at

По умолчанию загружается самый новый снимок. --at <time|snapshot> выбирает другой: либо время в ISO 8601, либо идентификатор снимка. Флаг действует только вместе с --store.

rdc backup download mail --store --to /mnt/usb --at 2026-10-01T00:00:00Z

На платформе, отличной от Linux, загруженный образ зашифрован и локально не открывается. Его отправляют на машину с Linux командой rdc backup upload.

Загрузка копии обратно

rdc backup upload /mnt/usb/prod/mail.latest.img --to prod --as mail-copy --up

rdc backup upload отправляет скачанный образ на машину и регистрирует его как новый репозиторий. Передача возобновляется после прерывания, а машина проверяет sha256 и заголовок LUKS, прежде чем разместить образ. Учётные данные берутся из файла состояния рядом с образом. Если этот файл утерян, --from-repo <name> указывает репозиторий, который их предоставляет.

ФлагДействие
--as <name>Имя нового репозитория (по умолчанию имя образа)
--datastore <name>Разместить образ в указанном datastore
--from-repo <name>Взять учётные данные и родословную, когда файл состояния непригоден
--bwlimit <rate>, --retries <n>Так же, как при скачивании
--upЗапустить репозиторий после регистрации
--skip-verifyПропустить сравнение с sha256, записанным при скачивании

Устаревшие снимки передачи

Принудительно завершённая передача может оставить свой снимок на машине. rdc machine status считает устаревшие снимки передачи в сводке по пулу, а rdc machine prune <machine> --dry-run их перечисляет. Команда rdc machine prune <machine> их удаляет.

О снимках в хранилище чанков см. Резервное копирование и восстановление.