在Linux中,rsync
是一个非常强大的文件同步工具,它可以用来在本地或者远程之间同步文件和目录。以下是使用rsync
进行文件同步的基本步骤:
基本语法
rsync [选项] 源 目标
常用选项
-v
:详细模式,显示同步过程中的信息。-r
:递归同步目录及其子目录。-a
:归档模式,保留符号链接、文件权限、时间戳、用户和组信息。-z
:压缩文件数据在传输过程中。-h
:人类可读的输出格式。--delete
:删除目标目录中源目录不存在的文件。--progress
:显示文件传输的进度信息。-P
:等同于--partial --progress
,保留部分传输的文件,并显示进度。
示例
同步本地目录
假设你想将本地目录/home/user/source
同步到/home/user/destination
:
rsync -avzh /home/user/source/ /home/user/destination/
同步到远程服务器
如果你想将本地目录同步到远程服务器上的某个目录,可以使用-e
选项指定SSH:
rsync -avzh -e ssh /home/user/source/ user@remotehost:/home/user/destination/
从远程服务器同步
相反,如果你想从远程服务器同步文件到本地:
rsync -avzh -e ssh user@remotehost:/home/user/source/ /home/user/destination/
删除目标目录中多余的文件
如果你想在同步的同时删除目标目录中源目录不存在的文件,可以使用--delete
选项:
rsync -avzh --delete /home/user/source/ /home/user/destination/
注意事项
- 在源目录和目标路径后面加上斜杠
/
是有区别的。例如,/home/user/source/
表示同步source
目录下的内容,而/home/user/source
表示同步整个source
目录。 - 使用
rsync
时,最好先使用-n
(或--dry-run
)选项进行测试,这样不会实际执行同步操作,只会显示将会执行的操作:
rsync -avnzh /home/user/source/ /home/user/destination/
- 确保你有足够的权限来读取源目录和写入目标目录。
通过这些基本步骤和选项,你可以灵活地使用rsync
来同步文件和目录。根据你的具体需求,你可能需要组合使用不同的选项来达到最佳效果。