简介
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/