Rsync for windows配置
### Rsync for Windows 配置详解 #### 一、Rsync 概述 Rsync 是一个功能强大且高效的文件同步工具,广泛应用于 Linux 和 Unix 平台。它能够快速地在本地或远程主机之间同步文件及目录,并且支持增量同步(只传输文件差异部分),大大提高了同步效率和减少了网络带宽的消耗。对于 Windows 用户而言,虽然原生系统并不包含 Rsync,但通过第三方工具如 cwRsync 等可以实现类似的功能。 #### 二、Rsync 配置文件 rsyncd.conf 解析 在给定的示例中,我们看到了一个基本的 `rsyncd.conf` 配置文件示例。这个文件用于定义 Rsync 服务端如何处理客户端的请求,包括但不限于路径映射、权限控制等。 ##### 1. 配置段落 [backup] ```conf [backup] path=/cygdrive/e/server readonly=false transferlogging=yes authusers=aa secretsfile=e:/password/password ``` - **[backup]**:这是一个模块名称,用来区分不同的同步任务。 - **path**:指定此模块所对应的本地目录。 - **readonly**:设置为 `false` 表示允许写入操作,即客户端可以上传文件到服务器。 - **transferlogging**:设置为 `yes` 表示启用日志记录,记录所有文件传输信息。 - **authusers**:指定哪些用户可以访问此模块。 - **secretsfile**:指定密码文件的位置,该文件中存储了用户的密码信息。 #### 三、Rsync 执行脚本 rsync_e.bat 分析 接下来是一个批处理脚本 `rsync_e.bat` 的示例,该脚本用于执行具体的同步命令。 ```bat set path=%path%;C:\ProgramFiles\cwRsync\bin rsync -vzrtopg --progress --delete --password-file=/cygdrive/e/password/password aa@ip::backup /cygdrive/e/server rem readme.txt ``` - **set path**:设置环境变量,确保 Rsync 命令可以在当前环境下找到。 - **rsync** 命令行参数解析: - `-v`:增加输出信息的详细程度。 - `-z`:启用压缩,适用于网络带宽有限的情况。 - `-r`:递归复制目录。 - `-t`:保留文件时间戳。 - `-o`:保留文件所有者信息。 - `-p`:保留文件权限。 - `--progress`:显示同步进度。 - `--delete`:删除那些源目录不存在的目标目录中的文件或目录。 - `--password-file`:指定包含密码的文件路径。 - `aa@ip::backup`:指定远程主机地址及模块名。 - `/cygdrive/e/server`:指定本地目录作为目标位置。 - **rem readme.txt**:注释行,不执行任何操作。 #### 四、Rsync 命令选项详细解析 - **-a (archive mode)**:归档模式,等同于 `-rlptgoD` 的组合,是进行文件备份时常用的选项。 - **-r (recursive)**:递归复制目录。 - **-R (relative paths)**:使用相对路径信息。 - **-b (backup)**:如果目标文件已经存在,则创建备份。 - **-u (update)**:跳过那些目标文件与源文件时间戳相同并且大小相同的文件。 - **-l (links)**:将符号链接复制为符号链接。 - **-L (copy links)**:复制符号链接指向的文件,而不是符号链接本身。 - **-H (hard links)**:复制硬链接文件。 - **-p (perms)**:保留文件权限。 - **-o (owner)**:保留文件所有者信息。 - **-g (group)**:保留文件所属组信息。 - **-D (devices and special files)**:保留设备文件和特殊文件的信息。 - **-t (times)**:保留文件时间戳。 - **-S (sparse files)**:优化处理稀疏文件。 - **-n (dry run)**:模拟运行,仅显示将要执行的操作。 - **-W (whole file)**:对于每一个文件都进行完全复制。 - **-x (one file system)**:限制在一个文件系统内工作。 - **-B (block size)**:设定块大小。 - **-e (rsh)**:指定 rsh shell 命令。 - **--rsync-path**:指定远程系统上的 Rsync 命令路径。 - **-C (cvs exclude)**:使用类似于 CVS 的排除规则。 - **--existing**:只更新已经存在的文件。 - **--delete**:删除那些源目录不存在的目标目录中的文件或目录。 - **--delete-excluded**:删除那些被排除的文件或目录。 - **--delete-after**:完成同步后再删除多余文件。 - **--ignore-errors**:忽略错误,即使遇到 I/O 错误也继续删除文件。 - **--max-delete**:限制最大可删除文件数量。 - **--partial**:保留部分传输的数据,在中断后可以继续传输。 - **--force**:强制删除目录。 - **--numeric-ids**:以数字形式保存用户和组 ID。 - **--timeout**:设置超时时间。 - **--ignore-times**:忽略文件的时间戳。 - **--size-only**:仅根据文件大小来判断是否同步文件。 - **--modify-window**:设置修改时间的比较窗口。 - **-T (--temp-dir)**:指定临时文件夹。 - **--compare-dest**:与指定目录中的文件进行比较。 - **-P (--partial)**:保留部分传输的数据,在中断后可以继续传输。 - **--progress**:显示同步进度。 - **-z (--compress)**:对数据进行压缩传输。 - **--exclude**:排除匹配指定模式的文件或目录。 - **--include**:只包含匹配指定模式的文件或目录。 - **--exclude-from**:从指定文件中读取排除模式。 - **--include-from**:从指定文件中读取包含模式。 - **--version**:显示版本信息。 - **--address**:指定 IP 地址。 - **--config**:指定配置文件。 - **--port**:指定 Rsync 服务端口。 - **--blocking-io**:启用阻塞 IO。 - **--stats**:显示统计信息。 - **--log-format**:指定日志格式。 - **--password-file**:指定包含密码的文件。 - **--bwlimit**:限制最大带宽。 - **-h (human-readable)**:以易读的格式显示文件大小。 通过以上解析可以看出,Rsync 不仅提供了丰富的命令选项以满足各种复杂的同步需求,而且其灵活的配置文件和命令行选项使得用户可以根据具体场景定制出适合自己的同步策略。无论是简单的文件备份还是复杂的数据迁移,Rsync 都是一个非常强大的工具选择。
服务端配置
修改配置文件rsycn.conf,添加如下信息
*********************************************
# 同步e盘下server文件下所有文件目录信息
[backup]
path = /cygdrive/e/server #同步e盘下server文件下所有文件目录信息
read only = false
transfer logging = yes
auth users = aa #认证用户名
secrets file = e:/password/password #认证用户名和密码,之间用:隔开
*********************************************
客户端配置
创建一个批处理"rsync_e.bat",拷贝内容如下
*********************************************
set path=%path%;C:\Program Files\cwRsync\bin #设置环境变量
rsync -vzrtopg --progress --delete --password-file=/cygdrive/e/password/password aa@ip::backup /cygdrive/e/server
rem 参数配置详见readme.txt
*********************************************
rsync 参数信息
#####################################################################
-v, --verbose 详细模式输出
-q, --quiet 精简输出模式
-c, --checksum 打开校验开关,强制对文件传输进行校验
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r, --recursive 对子目录以递归模式处理
- chanya2012-08-22不是很准确
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助