rsync 入门:用一条命令在两台机器间安全同步文件

举报
yd_290247903 发表于 2026/11/11 06:26:45 2026/11/11
【摘要】 把一台服务器上的网站目录、照片或者代码,完整搬到另一台机器上,是很多开发者迟早会遇到的事。用移动硬盘拷贝太慢,用压缩包传来传去又容易丢文件、丢权限。rsync 就是为这件事而生的工具:它走 SSH 安全传输,只同步变化的部分,断了还能续传。下面讲讲它的用法。 一、rsync 是什么rsync 是一款经典的文件同步工具,几乎所有 Linux 发行版都自带。它最大的特点是增量同步:第一次把全部文...

把一台服务器上的网站目录、照片或者代码,完整搬到另一台机器上,是很多开发者迟早会遇到的事。用移动硬盘拷贝太慢,用压缩包传来传去又容易丢文件、丢权限。rsync 就是为这件事而生的工具:它走 SSH 安全传输,只同步变化的部分,断了还能续传。下面讲讲它的用法。

一、rsync 是什么

rsync 是一款经典的文件同步工具,几乎所有 Linux 发行版都自带。它最大的特点是增量同步:第一次把全部文件传过去,之后只传新增和改动过的部分,省流量也省时间。同步时它会尽量保留文件的权限、所有者、修改时间,同步过去的文件和原来保持一致。它既能在同一台机器的两个目录之间同步,也能通过 SSH 在两台机器之间同步,后者正是本文的重点。

二、先确认 rsync 装好了

在两台机器上分别执行下面这条命令,能看到版本号就说明已经装好:

rsync --version

如果提示找不到命令,用发行版自带的包管理器安装即可,例如 Debian 系用 apt 安装,Red Hat 系用 dnf 安装。两台机器都要装好,同步时两端都要调用它。另外确认两台机器之间能 SSH 登录。

三、最常用的一条命令

把本地目录同步到远程服务器,最常用的写法是这一条:

rsync -avz 本地目录/ 用户名@服务器地址:远程目录/

这条命令里冒号前面是远程主机的登录信息,冒号后面是远程路径。第一次执行时它会把目录里的全部文件传过去,之后再执行,只传改动过的文件。下面逐个拆开看这三个字母的含义。

四、看懂常用选项

-a 是归档模式,保留权限、时间戳、软链接等属性,是最常用的组合基础。-v 是显示详细过程,同步了哪些文件一目了然。-z 是传输时压缩,文件多、带宽窄时效果明显。–dry-run 是先模拟一遍,只打印要做什么而不真的传输,正式同步前建议先跑一次。–exclude 可以排除不需要同步的文件,比如缓存目录和日志文件。

五、四个实战场景

场景一,从远程服务器把文件拉回本地:

rsync -avz 用户名@服务器地址:远程目录/ 本地目录/

场景二,排除缓存和日志,只同步真正需要的文件:

rsync -avz --exclude 缓存目录 本地目录/ 用户名@服务器地址:远程目录/

场景三,正式同步前先模拟,确认无误再执行:

rsync -avz --dry-run 本地目录/ 用户名@服务器地址:远程目录/

场景四,远程服务器换了 SSH 端口或密钥文件:

rsync -avz -e "ssh -p 端口号 -i 密钥文件路径" 本地目录/ 用户名@服务器地址:远程目录/

六、容易踩的三个坑

第一个坑是目录末尾的斜杠。源目录写成本地目录/,表示同步目录里面的内容;写成本地目录(不带斜杠),则会把目录本身也同步过去,多出一层目录。第二个坑是 --delete。它会删除目标端多余的文件,让两边完全一致,用之前务必先用 --dry-run 确认,否则误删了只能从备份里找回来。第三个坑是权限。如果目标目录没有写权限,同步会中途失败,先确认目录归属和权限,再执行同步。记住这两条:同步前备份,正式跑之前先模拟。

七、总结

rsync 的核心就一句话:用一条命令,通过 SSH 安全地把变化的部分同步过去。记住 -avz 这组常用选项,养成先模拟、再执行的习惯,再配合定时任务做定期备份,一台机器到另一台机器的文件同步就基本不用操心了。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。