2.4 rsync
约 534 字大约 2 分钟
2025-05-06
rsync
是一个用于在本地或远程系统之间同步文件和目录的强大工具。它支持增量传输,只传输发生变化的部分,从而提高了效率。以下是 rsync
的基本使用方法和一些常用用法。
基本语法
rsync [选项] 源 目标
常用选项
-a
:归档模式,保留文件属性(如权限、时间戳等),相当于-rlptgoD
。-v
:详细模式,显示传输过程中的详细信息。-z
:压缩传输,减少数据传输量。-P
:显示传输进度,并支持断点续传。-r
:递归复制目录及其内容。-e
:指定远程 shell 程序(如ssh
)。--delete
:删除目标目录中源目录不存在的文件。--exclude
:排除指定文件或目录。--include
:包含指定文件或目录。--dry-run
:模拟运行,不实际执行任何操作。
常用用法
我一般使用的用法:rsync -avP source_dir/ destination_dir/
本地同步 同步本地目录
source_dir
到destination_dir
:rsync -av source_dir/ destination_dir/
远程同步 将本地目录压缩同步到远程服务器:
rsync -avz -e ssh source_dir/ user@remote_host:/path/to/destination_dir/
从远程服务器压缩同步到本地:
rsync -avz -e ssh user@remote_host:/path/to/source_dir/ destination_dir/
删除目标目录中源目录不存在的文件
rsync -av --delete source_dir/ destination_dir/
排除特定文件或目录 排除
source_dir
中的exclude_dir
和exclude_file
:rsync -av --exclude 'exclude_dir' --exclude 'exclude_file' source_dir/ destination_dir/
显示传输进度
rsync -avP source_dir/ destination_dir/
模拟运行 模拟同步操作,不实际执行:
rsync -av --dry-run source_dir/ destination_dir/
同步时保留符号链接
rsync -avL source_dir/ destination_dir/
同步时保留硬链接
rsync -avH source_dir/ destination_dir/
示例
同步本地目录并删除目标目录中多余的文件
rsync -av --delete /path/to/source/ /path/to/destination/
同步远程目录并压缩传输
rsync -avz -e ssh user@remote_host:/path/to/source/ /path/to/destination/
同步时排除特定文件
rsync -av --exclude '*.log' /path/to/source/ /path/to/destination/
注意事项
rsync
的源目录如果以/
结尾,表示同步目录内容;如果不以/
结尾,表示同步目录本身。