Hostinger Rsync 使用教程:文件和目录同步方法详解
Rsync(Remote Sync,远程同步)是一款命令行工具,用于在两个位置之间同步文件和目录。它非常高效,因为只传输文件中发生变化的部分。本指南将讲解默认的命令逻辑,并提供管理 Hostinger VPS 或托管云主机文件的常见示例。
如需了解其他支持的文件传输和服务器访问方式的概览,请参阅 Hostinger 支持哪些文件传输和服务器访问方式。
前提条件
- 在源位置和目标位置均已启用 SSH 访问。
- 一个支持 SSH 的 Hostinger 主机方案(Single 网页主机方案除外,所有方案均支持)。
- 一个终端或命令行界面。
默认的 Rsync 命令结构
每条 Rsync 命令都遵循标准语法。理解这个“公式”后,你就可以根据自己的需求自定义传输:
rsync [options] -e "ssh -p port" [source] [destination]
-
[options]:定义命令的行为(例如-avz表示归档模式、详细输出和压缩)。 -
-e "ssh -p port":指定连接方式和 SSH 端口。正确的端口取决于你的主机类型:- 共享主机/云主机:Hostinger 默认使用端口 65002。你可以在 Hostinger 控制面板的 Advanced → SSH Access(高级 → SSH 访问)中确认。
- 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 才能“看到”并移动它。
- 在源位置:创建备份文件:
mysqldump -u db_user -p db_name > data.sql - 同步:运行你的 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/ - 在目标位置:将数据导入你的新数据库:
mysql -u db_user -p db_name < data.sql
遵循默认的 Rsync 结构,你就可以精确控制数据在不同环境之间的移动方式。在执行完整同步之前,请务必在 Hostinger 控制面板中核对你的 SSH 端口,并先执行一次模拟运行(dry run)。
注意事项
- SSH 端口: Hostinger 共享主机和云主机默认使用端口 65002。VPS 云服务器默认使用端口 22。在运行命令之前,请务必在 Hostinger 控制面板的 Advanced → SSH Access(高级 → SSH 访问)中核对你的端口。
- 进度显示: 添加
-P标志可以在大文件传输时查看进度条。 - Single 方案不可用: Rsync 需要 SSH,而 Single 网页主机方案不支持 SSH。