Настройки

Frost хранит настройки в файле config.toml в своей папке конфигурации. Изменить их можно через frost init, frost config set или frost config edit, а также в любом текстовом редакторе.

#Чтение и изменение настроек

Команда Что делает
frost config Выводит все настройки. Учётные данные скрыты, если не добавить --show-secrets
frost config get <key> Выводит одну настройку. Списки выводятся по одному элементу в строке
frost config set <key> <value...> Меняет одну настройку и показывает, что изменилось
frost config edit [editor] Открывает config.toml в редакторе

Например:

frost config get schedule.every
frost config set schedule.every 6h
frost config set paths ~/Documents ~/Pictures
  • Список получает по одному значению на элемент, а set заменяет список целиком.
  • true и false включают и выключают настройки.
  • Изменение любой настройки schedule сразу обновляет задание по расписанию. В macOS и Windows изменение, сделанное во время копирования по расписанию, применяется сразу после его завершения, чтобы не прерывать его.
  • Если вы меняете место хранения, Frost проверяет новое место перед сохранением. Подробнее в разделе Перенос резервных копий.

#Редактирование файла

frost config edit

Frost открывает копию config.toml в указанном вами редакторе, иначе в $VISUAL или $EDITOR, а если их нет, в nano, vim или vi. В Windows в этом случае открывается Блокнот. Когда вы закроете редактор, Frost покажет, что вы изменили, и сохранит копию, как только вы введёте yes.

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

#Редактирование вручную

config.toml можно открыть в любом текстовом редакторе и сохранить. Frost читает файл при каждом запуске, поэтому большинство изменений действуют со следующего запуска. Двум видам изменений нужен ещё один шаг, и Frost делает его при следующем запуске любой команды Frost:

  • Если изменилось расписание, Frost обновляет задание по расписанию и сообщает "config.toml changed. Scheduled job updated" (config.toml изменился, задание по расписанию обновлено). В Linux это делает и следующее копирование по расписанию. Изменение, сделанное во время копирования по расписанию, ждёт его завершения, как и с frost config set.
  • Новое место хранения проходит те же проверки, что и с frost config edit, когда Frost впервые его использует. О проблемах Frost предупреждает.

Перед сохранением файл никто не проверяет. Если его не удаётся разобрать, команды Frost сообщают об этом, пока вы его не исправите.

#Все настройки

Ключ По умолчанию Значение
paths Папки для копирования
exclude .DS_Store, Thumbs.db, *.tmp, *.swp, node_modules, .cache Имена и шаблоны, которые исключаются. См. раздел Исключение файлов
schedule.enabled true Делать копии автоматически
schedule.every daily hourly, 2h, 3h, 4h, 6h, 8h, 12h, daily или weekly
schedule.time 15:00 Время копирования в 24-часовом формате. Подробнее в разделе Автоматическое резервное копирование
schedule.day sunday День еженедельного копирования, от sunday до saturday
schedule.catch_up true Сделать пропущенную копию, когда компьютер снова заработает. false пропускает такие копии
verify.sample 20 Сколько блоков скачивает выборочная проверка. 0 её выключает
update.auto true Устанавливать новые версии после копирования по расписанию. false только сообщает о них
storage.backend permafrost, s3, sftp для варианта Собственный сервер или local для локального диска
storage.sftp.host SSH-адрес вашего сервера, например [email protected], или Host из вашей конфигурации SSH
storage.sftp.port 0 SSH-порт сервера. 0 берёт порт из вашей конфигурации SSH или 22
storage.sftp.path frost Папка на сервере. Относительный путь отсчитывается от вашей домашней папки на сервере
storage.local.path Полный путь к папке на диске
storage.permafrost.url Пусто для сервера по умолчанию, https://permafrost.wihiaawb.com. Иначе адрес https:// или http:// для сервера на вашем компьютере
storage.permafrost.token Ваш ключ доступа Permafrost
storage.s3.endpoint Например s3.us-east-1.amazonaws.com. Подойдёт и полный адрес https://, а адрес http:// выключает TLS
storage.s3.region Пусто, если ваш сервер или провайдер не использует регионы
storage.s3.bucket Имя бакета. Бакет должен уже существовать
storage.s3.prefix frost Папка в бакете, где лежат копии. Пусто для корня бакета
storage.s3.access_key_id Идентификатор вашего ключа доступа
storage.s3.secret_access_key Ваш секретный ключ доступа
storage.s3.insecure false Использовать обычный HTTP для эндпоинтов без указания протокола. Только для локальных тестов

#Переменные окружения

Переменная Заменяет
FROST_S3_ACCESS_KEY_ID или AWS_ACCESS_KEY_ID storage.s3.access_key_id
FROST_S3_SECRET_ACCESS_KEY или AWS_SECRET_ACCESS_KEY storage.s3.secret_access_key
FROST_PERMAFROST_TOKEN storage.permafrost.token
FROST_CONFIG_DIR Папку конфигурации, как --config-dir
FROST_CACHE_DIR Папку кэша

Frost никогда не записывает значения из окружения в config.toml. Копирование по расписанию не видит переменных, заданных в вашей оболочке, поэтому учётные данные всё равно должны быть в config.toml.