我只想重申,在使用 rsync 同步到新服务器时,--numeric-ids 是 100% 必需的。否则,rsync 将尝试匹配主机之间的用户名,这将更改 Docker 内部的文件所有权。这会导致你遇到大量错误消息,最终发现第一个失败是 Postgres 拒绝启动,因为它不再拥有它认为应该拥有的文件,然后还会引发大量其他混乱(Redis 将尝试绑定它已在监听的 TCP 端口,猫狗同居等),使得诊断问题变得困难。
另外,Discourse 制作的、用于在 Discourse 完全控制的 Docker 容器内运行的实际备份 可能无法正常工作,并且显然存在可以追溯到 数年 的、似乎未得到解决的故障,这让我感到非常恐惧,这也是我选择 rsync 来迁移到新硬件的原因。Rsync 成功完成了任务,现在它运行在一个带有每小时快照的镜像 ZFS 文件系统上,并且每天进行远程备份,这很棒……但我确实担心那些认为 Discourse 的自动备份会在灾难中拯救他们而沾沾自喜的管理员,当他们尝试使用备份时,会对着损坏的 SQL 索引以及他们运行了哪些插件而挠头。