Linux 学习资料 https://pan.baidu.com/s/1A6qqBk2ViE_Le2cQjSowkQ?pwd7uz81. 命令简介rsyncremote synchronize是一个功能强大的远程数据同步工具可通过局域网LAN或广域网WAN快速同步多台主机间的文件。它采用独特的 “rsync 算法”仅传输两个文件之间的差异部分而非每次传输整个文件因此传输效率极高。rsync 支持以下主要特性增量备份和同步保持文件权限、时间戳、软硬链接等属性支持压缩传输以节省带宽可通过 SSH 进行安全传输支持守护进程模式daemon mode进行集中式文件分发2. 语法格式bash运行# 本地文件同步 rsync [OPTION]... SRC DEST # 本地到远程使用远程shell rsync [OPTION]... SRC [USER]HOST:DEST # 远程到本地使用远程shell rsync [OPTION]... [USER]HOST:SRC DEST # 从远程rsync服务器到本地守护进程模式 rsync [OPTION]... [USER]HOST::SRC DEST rsync [OPTION]... rsync://[USER]HOST[:PORT]/SRC [DEST] # 从本地到远程rsync服务器守护进程模式 rsync [OPTION]... SRC [USER]HOST::DEST3. 常用选项及说明3.1 基本选项表格选项说明-v, --verbose详细模式输出显示同步过程-q, --quiet精简输出模式减少输出信息-n, --dry-run模拟执行显示哪些文件将被传输但不实际执行-P等同于 --partial --progress显示进度并保留部分传输的文件3.2 归档和属性选项表格选项说明-a, --archive归档模式等同于 -rlptgoD保持所有文件属性-r, --recursive递归处理子目录-l, --links保持符号链接-L, --copy-links将符号链接转换为指向的实际文件-p, --perms保持文件权限-t, --times保持文件修改时间-o, --owner保持文件所有者需要 root 权限-g, --group保持文件所属组-D保持设备文件和特殊文件3.3 传输和同步选项表格选项说明-z, --compress传输时进行压缩--delete删除目标目录中源目录没有的文件--delete-excluded同时删除目标目录中被排除的文件--delete-after传输完成后删除文件-u, --update跳过目标目录中修改时间较新的文件--progress显示传输进度-b, --backup创建备份对已存在的文件重命名为filename--backup-dirDIR将备份文件存放到指定目录--suffixSUFFIX指定备份文件的后缀默认为3.4 排除和包含选项表格选项说明--excludePATTERN排除匹配模式的文件--exclude-fromFILE从文件中读取排除模式--includePATTERN包含匹配模式的文件与 --exclude 配合使用--include-fromFILE从文件中读取包含模式-C, --cvs-exclude使用 CVS 风格的自动排除模式3.5 网络和远程选项表格选项说明-e, --rshCOMMAND指定远程 shell默认为 ssh--portPORT指定 rsync 守护进程端口默认为 873--password-fileFILE从文件读取密码用于守护进程模式--bwlimitRATE限制 I/O 带宽单位为 KB/s--timeoutSECONDS设置 I/O 超时时间4. 示例用法4.1 本地文件同步同步本地目录保持所有属性bash运行rsync -av /source/directory/ /destination/directory/同步并删除目标目录中多余的文件bash运行rsync -av --delete /source/ /destination/模拟执行查看哪些文件会被同步bash运行rsync -avn /source/ /destination/4.2 通过 SSH 同步到远程服务器本地同步到远程bash运行rsync -avz -e ssh /local/path/ userremotehost:/remote/path/远程同步到本地bash运行rsync -avz -e ssh userremotehost:/remote/path/ /local/path/使用特定 SSH 端口bash运行rsync -avz -e ssh -p 2222 /local/path/ userremotehost:/remote/path/4.3 使用 rsync 守护进程模式从 rsync 服务器同步模块bash运行rsync -av userrsync-server::module_name /local/path/使用完整 URL 格式bash运行rsync -av rsync://userrsync-server:873/module_name /local/path/同步到 rsync 服务器bash运行rsync -av /local/path/ userrsync-server::module_name4.4 排除特定文件排除单个文件类型bash运行rsync -av --exclude*.tmp /source/ /destination/排除多个模式bash运行rsync -av --exclude{*.log,temp/} /source/ /destination/从文件读取排除列表bash运行rsync -av --exclude-fromexclude-list.txt /source/ /destination/排除隐藏文件bash运行rsync -av --exclude.* /source/ /destination/4.5 备份和恢复创建带时间戳的备份将文件备份到单独的日期目录中bash运行rsync -av --backup --backup-dirbackup-$(date %Y%m%d) /source/ /destination/创建增量备份仅同步变化的文件到日期目录bash运行rsync -av --link-dest/path/to/previous_backup /source/ /destination/backup-$(date %Y%m%d)/5. 注意事项源目录斜杠差异同步目录时源路径末尾的斜杠/含义不同。rsync -av source/ dest/同步 source 目录内的内容到 dest 目录中。rsync -av source dest/同步 source 目录本身到 dest 目录中成为 dest/source。在不确定时先使用-n模拟运行选项查看效果。权限问题使用-a选项时保留所有者 (-o) 和组 (-g) 信息通常需要 root 权限。谨慎使用 --delete该选项会删除目标端独有的文件操作前务必确认源目录是正确的并强烈建议先使用-n --delete进行模拟。网络传输默认通过 SSH 传输是加密且安全的。使用守护进程模式双冒号::或rsync://时密码可能以明文传输请结合--password-file或 SSH 隧道确保安全。