备份目的地
只存放在面板服务器上的备份,会随服务器一起丢失。备份目的地把每个备份文件的副本发送到别处:兼容 S3 的存储、SFTP 服务器或 Telegram 聊天。面板写入的每个备份文件,无论是定时创建还是在 设置 → 备份 中手动创建的,都会在后台发送到每个已开启的目的地。该页面位于 服务 → 备份目的地,由主管理员设置。


请先设置口令
备份文件包含本面板的所有凭据。未加密时,任何能读取目的地的人都能拿到全部凭据。在开启目的地之前,请先在 设置 → 备份 中设置备份口令;没有口令时,页面会给出警告。
每个目的地都是一张卡片,包含 服务已开启、它的设置、测试(测试使用已保存的设置,因此请先保存)和 上次运行。密钥或密码保存后不会再显示;留空即保留已保存的值。
S3 兼容存储
Cloudflare R2、AWS S3、Backblaze B2、MinIO,以及任何支持 S3 协议的存储,包括本地服务商提供的对象存储。
| 设置 | |
|---|---|
| 服务地址 | 不含存储桶的存储地址,例如 https://<account>.r2.cloudflarestorage.com、https://s3.<region>.amazonaws.com、https://s3.<region>.backblazeb2.com,或你的 MinIO |
| 区域 | 留空 = us-east-1,R2 和 MinIO 均接受;AWS 需要存储桶自身的区域 |
| 存储桶 | 必须已经存在 |
| 访问密钥、秘密密钥 | 在该存储桶中有写入、列出和删除权限的密钥 |
| 文件夹 | 存储桶中的文件夹;留空 = 根目录 |
| 保留 | 在那里保留多少个备份(参见保留策略) |
SFTP
任何可以通过 SSH 访问的服务器。
| 设置 | |
|---|---|
| 主机、端口 | 不含协议;端口留空为 22 |
| 用户名 | |
| 密码、私钥 | 任选其一或同时使用;私钥为 PEM 或 OpenSSH 格式,不带口令 |
| 主机密钥 | 首次连接时自动填入,之后每次连接都会校验 |
| 目录 | 不存在时自动创建;留空 = 登录用户的主目录 |
| 保留 | 与 S3 相同 |
面板在首次连接时信任服务器的主机密钥,之后拒绝任何其他密钥。如果服务器已重建,且其密钥确实已变更,请清空 主机密钥 并保存;下一次连接会记录新的密钥。
备份文件先以临时名称写入,完成后再重命名,因此上传到一半的文件永远不会被当作备份。
Telegram
备份文件以文件形式发送到一个聊天中,由 Telegram 服务的 Bot 经由其代理发送,因此请先设置该服务。
| 设置 | |
|---|---|
| 聊天 ID | 已配对到主管理员账户的聊天,填写 Telegram 页面在其下方显示的数字 |
该聊天可以是你的私聊,也可以是配对给你的群组。在群组中,每个成员都会收到备份文件,也就拿到了面板保存的所有凭据,因此请据此谨慎选择群组。
Bot API 接受最大 50 MB 的文件。更大的备份会被拒绝并说明原因,而不是发送后失败;备份更大的面板请使用 S3 或 SFTP。聊天中的任何内容都不会被删除,因此 保留 在这里不适用。
插件的文件
当此目的地开启时,拥有 backup:deliver 权限的插件或你自己的脚本可以把自己的文件发送到同一个聊天。面板只负责转发,不会保留文件,并附上发送者名称、文件名和文件大小作为说明:每个发送者每小时最多六个文件,每个最大 50 MB。插件会在授权界面上说明理由并申请此权限(参见 扩展页面);关闭该目的地会停止所有此类发送。
保留策略
保留 是一个目的地保存的备份数量。留空则使用备份页面上设置的保留数量;0 表示全部保留。每次上传后,超出该数量的最旧备份会从目的地删除。
只有文件名与面板备份格式一致的文件才会被删除,因此同一个存储桶或目录可以存放其他内容。
上传失败时
上传失败永远不会导致备份失败:
- 备份文件保留在面板服务器上;
- 目的地的 上次运行 显示错误;
- 发出
panel.backup_upload_failed事件,发往 Telegram、邮件以及任何监听该事件的 Webhook(参见 Webhook 与事件); - 下一个备份照常发送。
请留意该事件,或不时查看 上次运行:一个静默失败了一个月的目的地,意味着你缺少一个月的备份。
