了解如何使用 Rsync 工具同步本地与远程目录、创建镜像并管理 Hostinger 服务的数据传输。

Rsync(Remote Sync)是一个用于在两地之间同步文件和目录的命令行工具。它非常高效,因为只传输文件中发生变化的部分。本指南说明默认命令逻辑,并提供用于管理你的 Hostinger VPS托管主机文件的常见示例。

前置条件

  • 源端与目的端均已启用 SSH 访问
  • 支持 SSH 的 Hostinger 主机套餐(除 Single 虚拟主机套餐外,所有套餐均支持)。
  • 终端或命令行界面。

Rsync 默认命令结构

每条 Rsync 命令都遵循标准语法。理解这个“公式”后,你可以根据需要自定义传输:

rsync [options] -e "ssh -p port" [source] [destination]

  • [options]:定义行为(例如 -avz 表示归档、详细输出和压缩)。
  • -e "ssh -p port":指定连接方式与 SSH 端口。正确端口取决于你的主机类型:
  • 虚拟主机/云主机:Hostinger 默认使用端口 65002。你可以在 hPanel 的 高级 → SSH 访问(Advanced → SSH Access) 中确认。
  • VPS 主机:默认端口为 22,除非你已更改。

本指南所有示例均使用 -p 65002。如果你使用默认端口的 VPS,请将其替换为 -p 22

  • [source]:你要移动的文件所在位置。
  • [destination]:你的服务器凭据以及文件要放置的路径。

提示: 始终通过在选项中添加 -n--dry-run 来测试命令。这会模拟传输而不做任何实际更改。

理解“尾部斜杠”(/)

源路径末尾是否有斜杠会改变文件在目的端的放置方式。

选项 A:带斜杠( source/

这表示 Rsync 只复制文件夹的内容。当你想将文件直接移入服务器上已有的目录时使用。

  • 默认格式: rsync [options] /local-folder/ user@ip:/remote-folder/
  • 示例: rsync -avz ~/Desktop/my-files/ user@ip:/public_html/
  • 结果: my-files 内的文件将直接出现在 public_html 中。

选项 B:不带斜杠( source

这表示 Rsync 复制整个文件夹本身。当你想在目的端重建文件夹结构时使用。

  • 默认格式: rsync [options] /local-folder user@ip:/remote-folder/
  • 示例: rsync -avz ~/Desktop/my-files user@ip:/public_html/
  • 结果: 你将在 public_html 目录中看到一个新建的名为 my-files 的文件夹(/public_html/my-files/)。

常见同步场景

理解默认结构后,你可以将其应用于以下常见的 Hostinger 工作流。

1. 上传文件到 Hostinger(推送 / Push)

要将文件夹从本地计算机移动到服务器,请将本地路径作为源。

默认格式: rsync [options] -e "ssh -p port" /local/path/ username@ip_address:/remote/path/

示例: rsync -avz -e "ssh -p 65002" ~/Desktop/website/ u123456789@1.2.3.4:/home/u123456789/domains/domain.com/public_html/

2. 从 Hostinger 下载文件(拉取 / Pull)

要将文件从服务器下载到你的计算机,请将源和目的互换。

默认格式: rsync [options] -e "ssh -p port" username@ip_address:/remote/path/ /local/path/

示例: rsync -avz -e "ssh -p 65002" u123456789@1.2.3.4:/home/u123456789/domains/domain.com/public_html/backup/ ~/Downloads/

3. 创建精确镜像

要确保目的端与源端完全一致(删除目的端中源端已不存在的文件),请添加 --delete 参数。

默认格式: rsync [options] --delete -e "ssh -p port" [source] [destination]

示例: rsync -avz --delete -e "ssh -p 65002" ~/Desktop/website/ u123456789@1.2.3.4:/home/u123456789/domains/domain.com/public_html/

可选:同步数据库

如果你要同步带数据库的网站,仅同步文件是不够的。你必须将数据库导出为文件,Rsync 才能“看到”并移动它。

  1. 在源端: 创建备份文件:mysqldump -u db_user -p db_name > data.sql
  2. 同步: 运行你的 Rsync 命令。如果 data.sql 文件位于你的网站文件夹内,它会被自动移动。示例: rsync -avz -e "ssh -p 22" ~/Desktop/website/data.sql u123456789@1.2.3.4:/home/u123456789/domains/domain.com/public_html/
  3. 在目的端: 将数据导入新数据库:mysql -u db_user -p db_name < data.sql

遵循 Rsync 默认结构,你可以精确控制数据在不同环境之间的移动方式。请始终在 hPanel 中核实你的 SSH 端口,并在执行完整同步前先进行试运行。

注意

  • SSH 端口: Hostinger 虚拟主机和云主机默认使用端口 65002。VPS 主机默认使用端口 22。运行命令前,请务必在 hPanel 的 高级 → SSH 访问(Advanced → SSH Access) 中核实你的端口。
  • 进度: 添加 -P 参数可查看大文件传输的进度条。
  • Single 套餐不可用: Rsync 需要 SSH,而 Single 虚拟主机套餐不提供 SSH。

来源:Hostinger 官方帮助文档