简介

rsync 是一个高效的文件同步工具,可以通过 SSH 传输文件。它的特点是:

  • 增量传输:只传输变化的部分
  • 支持断点续传
  • 可以保持文件权限、时间戳等信息

在windows上推荐使用git或者wsl进行文件同步

格式

假设:

  • 服务器 IP:192.168.1.100
  • 服务器用户名:user
  • 要下载的目录:/home/user/data
  • 本地保存目录:C:\Users\YourName\Desktop\data

运行:

rsync -avz user@192.168.1.100:/home/user/data/ /c/Users/YourName/Desktop/data/

参数解释:

  • -a:归档模式(保留权限、时间戳等)
  • -v:详细输出(verbose)
  • -z:压缩传输(加快速度)
  • user@192.168.1.100:SSH 登录信息
  • /home/user/data/:服务器上的路径(最后的 / 表示目录内容)
  • /c/Users/...:Windows 本地路径

其他选项:

  • --progress:显示传输进度
  • --delete:删除目标目录中多余的文件(同步时用)
  • -P:断点续传

使用

上传文件

把本地 file.txt 上传到服务器 /home/user/ 目录:

rsync -avz /c/Users/YourName/Desktop/file.txt user@192.168.1.100:/home/user/

下载文件

把服务器上的 file.txt 下载到本地桌面:

rsync -avz user@192.168.1.100:/home/user/file.txt /c/Users/YourName/Desktop/

上传目录

上传 data 目录的内容到服务器:

注意末尾的 / 表示只上传目录里的内容,而不是目录本身。

rsync -avz /c/Users/YourName/Desktop/data/ user@192.168.1.100:/home/user/data/

下载目录

下载服务器 data 目录内容到本地:

rsync -avz user@192.168.1.100:/home/user/data/ /c/Users/YourName/Desktop/data/

双向同步

让服务器目录与本地保持一致(并删除服务器多余文件):

rsync -avz --delete /c/Users/YourName/Desktop/data/ user@192.168.1.100:/home/user/data/

反方向同步(服务器下载到本地):

rsync -avz --delete user@192.168.1.100:/home/user/data/ /c/Users/YourName/Desktop/data/