设置项
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 第一次使用它时,会做和
frost config edit一样的检查。有问题会显示为警告。
保存之前没有任何检查。如果文件无法解析,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],或者 SSH 配置中的某个 Host | |
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 | 你的访问密钥 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。计划备份看不到你在 shell 中设置的变量,所以 config.toml 中仍然需要凭据。