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的源目录如果以/结尾,表示同步目录内容;如果不以/结尾,表示同步目录本身。