给 Linux 服务器使用的多任务远程备份面板。每个任务可独立备份文件/目录、MySQL/MariaDB、PostgreSQL 或 Redis,并设置源服务器、本地目录、备份周期和保留份数;备份在后台运行。
在保存备份的服务器上用 root 执行:
bash <(curl -Ls https://raw.githubusercontent.com/JohnMuyuan/Server-File-backuper/main/install.sh)安装器会先询问是否由 1Panel 反向代理并管理 HTTPS。直接回车会继续由 Simple Backup 申请 Let’s Encrypt 短期 IP 证书;输入 y 会完全跳过本程序的证书申请,把 HTTPS 交给 1Panel。
选择 1Panel 模式后,Simple Backup 只监听 http://127.0.0.1:面板端口,不会开放该端口到公网。请在 1Panel 创建“反向代理”网站,把代理地址填写为 http://127.0.0.1:8088(端口按安装时填写的值),然后在该网站的 HTTPS 设置中选择或申请证书。用户只访问 1Panel 提供的 https://域名,不要直接访问本机代理地址。
申请和续期内置证书时,公网 IPv4 必须直接指向这台服务器。安装器优先使用 TCP 80;若端口已被网站占用,会依次尝试 TCP 443 TLS-ALPN、Nginx/Apache 无停机校验,也可通过 SB_ACME_WEBROOT=/网站根目录 复用现有网站。Webroot 必须是 IP 请求实际命中的站点根目录;使用 1Panel 时需把该网站设为默认站点或绑定公网 IP。安装器会在申请前自动验证。公网入口始终使用 HTTPS,不会把 SSH 密钥和密码暴露在公网明文 HTTP 中。
非交互安装:
SB_NONINTERACTIVE=1 \
SB_REVERSE_PROXY=0 \
SB_PUBLIC_IP='203.0.113.10' \
SB_PANEL_USER='admin' \
SB_PANEL_PASSWORD='至少10位密码' \
SB_PANEL_PORT='8088' \
bash <(curl -Ls https://raw.githubusercontent.com/JohnMuyuan/Server-File-backuper/main/install.sh)使用 1Panel 的非交互安装只需设置 SB_REVERSE_PROXY=1;此时不需要 SB_PUBLIC_IP,也不会申请证书或开放面板端口。
内置证书模式完成后访问 https://公网IP:面板端口;1Panel 模式访问在 1Panel 中绑定的 https://域名。两种模式都使用网页内的登录界面。
如果 Chrome 仍显示“不安全”,先运行 simple-backup info 查看 HTTPS 自检结果,并确认地址栏使用的是证书中的同一个公网 IP和 https://,设备时间正确,且没有经过会替换证书的代理。点击 Chrome 的证书详情可进一步查看具体错误码。
如果旧安装器错误地把面板设成了 80,运行 simple-backup update 会在 8088 空闲时自动迁移回 https://公网IP:8088。
- 推荐在备份服务器生成密钥:
ssh-keygen -t ed25519,再用ssh-copy-id -p 22 root@源服务器IP交给源服务器。 - 也可以在任务中选择“SSH 密码”并填写密码。
- 选择“文件 / 目录”或数据库类型。文件任务可选择“快照压缩包”“增量归档(只新增、不压缩)”或“完全镜像同步(不压缩)”,再设置“每隔 N 天”和一个或多个备份时间。例如每隔 1 天,在 02:00、14:00 运行,就是每天两次。
- 保持“首次连接自动安装依赖”勾选,然后点击“立即备份”测试。
程序首次执行任务时会用已提供的 SSH 密钥或密码登录源服务器,按任务类型检查并安装 rsync、MySQL/MariaDB 客户端、PostgreSQL 客户端或 redis-cli。SSH 用户必须是 root,或拥有免密 sudo -n 权限;否则会在面板和 Telegram 中给出失败原因。程序使用 StrictHostKeyChecking=accept-new 自动记录首次主机指纹。
默认 4 条并行连接,允许范围为 1-16。程序先完整扫描远端目录并固定本轮文件清单,再把清单拆成互不重叠的队列交给多个 rsync 连接下载;每个连接会自行创建父目录,因此大量小文件不会再发生并发目录竞态。扫描后新增的文件留到下次备份,扫描后消失的实时文件只记录警告,权限、网络等真实错误仍会失败重试。中断内容保存在每个任务自己的 .partial-任务ID 目录中;点击“临时暂停”会保留 rsync 断点,“继续备份”会重新扫描后续传,“停止并清除”只清除本次暂存内容。程序更新或意外重启后会自动恢复当时仍在运行的任务。
快照文件任务先把远程内容镜像到备份服务器的暂存目录;数据库任务在远端运行原生导出工具并通过 SSH 直接流到备份服务器,不在源服务器落地备份文件。之后在备份服务器本机生成 .tar.zst 压缩包。文件下载支持断点续传;数据库逻辑导出无法安全续传,失败重试会重新导出。普通文件镜像能固定文件清单,但正在写入的单个文件仍不是原子快照;需要严格时间点一致性时应使用源服务器的 LVM、ZFS、Btrfs 或应用自身快照。
“增量归档(只新增、不压缩)”会持续写入一个固定目录:本地已存在的路径不会重新下载或覆盖,源端删除文件也不会删除本地副本。暂停会保留断点;“停止并清除”只撤销最近一次尚未成功完成的新增文件,不影响以前已归档的内容。这个模式只有一个持续增长的目录,因此不使用保留份数。
“完全镜像同步(不压缩)”也使用一个固定目录,会同步源端的新增、修改和删除。程序先在暂存目录生成完整的新镜像,成功后才替换旧镜像;失败、暂停或停止清除不会破坏上一份成功镜像。未变化的文件通过本地硬链接复用,不会从远端重复下载。这个模式同样不使用保留份数。
保留份数填 0 表示全部保留。设置为 10 时,在创建第 11 份之前先删除该任务最旧的一份。任务之间互不删除对方的备份。任一目标磁盘剩余空间低于 3 GB 时,程序会停止所有正在运行的备份、暂停新备份并发送 Telegram 通知。
在面板“设置”中填写 Bot Token 和 Chat ID,可先点击“发送 Telegram 测试消息”。只有这个 Chat ID 可以控制任务:
/tasks
/backup 任务ID
/stop 任务ID(暂停并保留断点)
/stop all(全部暂停)
/discard 任务ID(停止并清除断点)
/discard all
/status 任务ID
/list 任务ID
/delete 任务ID 备份文件名
只有一个任务时,部分命令可省略任务 ID。通知包含任务开始、成功、失败、容量不足和旧备份删除;成功通知包含备份文件名、大小、时间和剩余容量。
安装后执行 simple-backup 可查看状态、启动、停止、重启、修改面板账号/端口、更新、查看日志、重新申请 IP 证书或卸载。也可直接运行 simple-backup update。
网页首页显示备份磁盘占用圆环、各任务占用、服务器实时上传/下载网速、紧凑且可展开的后续备份队列、运行阶段和最近日志;日志页显示当前及上一轮转的全部应用日志。页面已适配手机宽度和触控操作。每张任务卡都有暂停、停止清除、继续和“详情”操作,执行后仍停留在任务页;详情页可查看实际并发策略、活跃传输槽位的文件/速度/已传输量,以及该任务的完整日志。失败原因会优先显示捕获到的认证、权限、网络或文件错误,不再用末尾的正常传输记录代替。
面板只保存带随机盐的 PBKDF2 密码哈希,不保存面板明文密码;SSH 和数据库密码与普通任务配置分开保存在仅 root 可读的 0600 文件中,且不会放入命令行参数。登录包含 HTTPS、安全 Cookie、CSRF 校验、每 IP 与账户级失败限速和失败日志。公网管理面板仍建议使用高强度随机密码,并在云防火墙中只允许可信 IP 访问面板端口。
安装器支持 apt、dnf、yum、zypper、pacman、apk,以及 systemd、OpenRC 和常见 SysV init。旧版单任务配置在升级后会自动迁移为第一个任务。卸载默认保留已有备份文件。