Настройки
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-адрес вашего сервера, например me@nas.local, или 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.