跳转到主要内容

FASTPANEL 之间的用户迁移

简介

本文介绍迁移用户账户及其关联数据(网站、数据库、电子邮件等)的过程 从一台 FASTPANEL 服务器迁移到另一台,使用内置的迁移工具。

关键术语

  • 源服务器 - 数据迁出的服务器。
  • 目标服务器 - 数据迁入的服务器。

重要说明

  • 默认情况下,迁移仅对采用标准 FASTPANEL 配置的网站正常生效。

  • 对于进行了手动配置更改的网站,只有使用 -m 标志进行 IP 地址映射时才能迁移。

  • 如果无法获得数据库所有者的加密密码,则该数据库不会被迁移。

  • 如果某个网站未被迁移,其关联的数据库也不会被迁移。

  • 只能迁移本地数据库。

迁移过程

连接

目标服务器通过 SSH 连接到源服务器。 首次连接时,目标服务器会在源服务器上安装 SSH 密钥(预先提供或由密码生成)。

迁移步骤

  • 安装模块
  • 收集可迁移对象的信息
  • 创建用户
  • 迁移 SSL 证书
  • 创建网站、FTP 账户、电子邮件域和电子邮件账户
  • 创建数据库和数据库用户
  • 迁移网站文件和电子邮件邮箱文件
  • 迁移 cron 任务

文件传输使用 rsync 执行。 数据库通过 SSH 隧道创建转储进行迁移。

启动迁移的命令

该命令在目标服务器上以具有 root 权限的用户运行:

/usr/local/fastpanel2/fastpanel transfer run [SSH_PARAMETERS] [IP_PARAMETERS] [ADDITIONAL_OPTIONS]

命令行标志

SSH 连接

  • --remote_host="SOURCE_IP" - 源服务器的 IP 地址。
  • --remote_port="SSH_PORT" - SSH 端口。
  • --remote_username="SSH_USER" - 用户(必须为 root)。
  • --remote_password="USER_PASSWORD" - 指定 SSH 用户的密码。
  • --ssh_key_path="PATH_TO_KEY" - 目标服务器上用于连接源服务器的 SSH 私钥路径。 如果使用密钥,则不需要密码(--remote_password)。

IP 地址

在迁移期间管理网站 IP 地址时,必须且只能使用以下标志之一。 -m 标志具有更高优先级。

  • -i "IP_ADDRESS_ON_DESTINATION" - 为目标服务器上的所有已迁移网站分配指定的 IP 地址。 要指定多个 IP(例如源服务器上有多个 IP),请为每个需要迁移的源 IP 重复此标志。

  • -m "SOURCE_IP,DESTINATION_IP" - 推荐的方法。 建立直接映射:源服务器上所有使用 SOURCE_IP 的网站将在目标服务器上使用 DESTINATION_IP。 对于不同的 IP 对,此标志可以指定多次。 对于手动编辑过配置的网站,此标志是必需的,因为它可以正确替换 listen 指令中的 IP 地址。

附加设置

  • --users="USER_LIST" - 仅迁移指定的用户(用逗号分隔)。 如果未指定,则迁移所有用户。
  • --disable_disk_quota - 禁用用户磁盘配额的迁移。
  • --with_user_data - 包括复制用户主目录中的全部内容(logs/ 子目录除外)。 请谨慎使用,因为这会显著增加迁移时间和传输数据量。
  • --only_data - 仅迁移数据(网站文件、邮件文件、数据库转储)。 如果初始结构迁移(用户、网站、数据库等) 已成功,但在文件或转储复制阶段发生了错误,这将非常有用。 允许仅重新运行数据复制部分。
  • --transfer_timeout - 设置操作超时时间(默认为 60 分钟)。

命令示例

将所有用户从服务器 11.22.33.44 迁移到当前服务器。 在旧服务器上,网站使用 IP 11.22.33.4411.22.33.55;在新服务器上,它们应分别使用 99.88.77.6699.88.77.67。 通过 SSH 使用密码连接。

/usr/local/fastpanel2/fastpanel transfer run \
--remote_host=11.22.33.44 \
--remote_username=root \
--remote_password=YourSourceRootPassword \
-m 11.22.33.44,99.88.77.66 \
-m 11.22.33.55,99.88.77.67

可能的问题和错误类型

迁移日志中的错误并不总是表示严重问题,但可能指出某个特定对象未被迁移的原因。

  • 冲突:当由于目标服务器的当前配置而无法迁移某个对象时会发生(例如,已存在同名用户或网站),或者源服务器上的网站配置对面板而言是未知的(例如,由于进行了大量手动编辑)。

  • 缺少已保存的密码:如前所述,如果源服务器上的 MySQL 数据库用户在 FASTPANEL 中没有保存密码,则无法迁移。

  • 手动设置和 IP 地址:如果源服务器上的某个网站包含手动修改的 Web 服务器配置,并且在迁移期间未使用 -m 标志映射其 IP 地址,则该网站不会被迁移,因为面板不知道在目标服务器上的配置中应指定哪个 IP。