假设:将本地上的/home目录文件同步到远程上的/home/test下,可通过以下两种方式来实现:
⭐将本地文件上传到远端(本地→远程)
# 在本地服务器上执行
# rsync 命令参数 源文件目录 目的目录
rsync [OPTION] SRC [USER@]HOST:DEST
# 示例:在本地上执行rsync,将/home目录文件同步到远程主机的/home/test上
rsync -avuz /home 远程用户名@远程IP:/home/test
⭐将远端文件下载到本地(远程→本地)
# rsync 命令参数 源文件目录 目的目录
# rsync [OPTION] [USER@]HOST:SRC [DEST]
# 示例:主机上执行rsync,将远程上/home/test下的目录文件下载到本地的/home上
rsync -auvz 远程用户名@远程IP:/home/test /home
#注意:
源目录加了斜线,效果就是将该目录下的内容传输到目标目录下
源目录不加斜线,效果就是将该目录传输到目标目录下
目标目录如果不存在,会自动创建目标目录
常用参数
-v, --verbose详细模式输出
-a, --archive归档模式,表示以递归方式传输文件,并保持所有文件属性不变
-u, --update 仅仅进行更新,也就是跳过已经存在的目标位置,并且文件时间要晚于要备份的文件,不覆盖新的文件
-z,--compress对备份的文件在传输时进行压缩处理
--delete:删除那些DST中存在而在SRC中没有的文件
--exclude=PATTERN: 指定排除不需要传输的文件模式
同步
1.本地文件同步
rsync -av source_dir/ destination_dir/
命令将 source_dir 目录下的文件同步到 destination_dir 目录下。其中,-a 选项表示以归档模式(保留文件属性、权限等)进行同步,-v 表示详细输出。
2.本地文件同步并删除目标多余文件
rsync -av --delete source_dir/ destination_dir/
添加 --delete 选项可以删除目标目录中不在源目录中的文件。
3.远程文件同步
rsync -avz -e ssh user@remote_host:/remote/source_dir/ /local/destination_dir/
这条命令将远程主机 remote_host 上的 /remote/source_dir/ 目录同步到本地的 /local/destination_dir/ 目录。-e ssh 表示使用 SSH 协议进行传输,-z 表示压缩传输数据。
4.同步前预览
rsync -av --dry-run source_dir/ destination_dir/
添加 --dry-run 选项可以预览同步操作的结果,但并不实际执行同步。