admin 管理员组文章数量: 887021
2024年3月11日发(作者:nodejs用法)
在 Windows 上使用 rsync 同步文件和目录
在 Windows 上使用 rsync 同步文件和目录
rsync 是一个 Unix 系统下的自由的计算机程序,它可以用来从一个地方同步文件和
目录到另外一个地方,而且它使用一种 delta 编码方式来使得所需要传输的数据是尽可能
的少。它被大量使用于站点镜像上。
这里介绍如何在 Windows 系统下来部署 rsync 服务器,并使用客户端同步文件和
目录。一.安装和部署服务器端
首先去下载一个为 Windows 平台开发的 rsync server:cwRsync Server ,下载后
安装和一般的 Windows 安装程序一样,一直点那个“下一步”(Next)就完事了。然后
修改一下配置,默认安装情况下,配置文件在 C:Program
,默认配置内容如下:use chroot = false
strict modes = false
hosts allow = *
log file =
pid file = # Module definitions
# Remember cygwin naming conventions : c:work becomes /cygwin/c/work
#
[test]
path = /cygdrive/c/work
read only = false
transfer logging = yes根据这段配置你很容易做出自己的配置修改,特别注意的是
要把路径 c:work 改成 /cygwin/c/work,修改完配置后,去 Windows 的服务管理器里
面找到 RsyncServer 这一条,把它的属性中的启动类型从“手动”改为“自动,这样下
次开机就会自动运行了,你也可以立即将该服务启动起来。
注意 rsync server 会监听 873 端口,所以如果你有开启防火墙,不要忘了开放 873
端口。二.安装客户端
然后你可以安装一个客户端,cwRsync,也可以在刚才下载 cwRsync Server 的网站
上找到,安装同样很简单,安装完成后建议你把 C:Program FilescwRsyncbin (默认安
装情况下)加入到操作系统环境变量的 PATH 参数中去,然后就可以在命令行里用命令
rsync 来做同步等操作了:
1.打印帮助:
C:>rsycn --help
rsync version 2.6.9 protocol version 29
Copyright (C) 1996-2006 by Andrew Tridgell, Wayne Davison, and
lities: 64-bit files, socketpairs, hard links, symlinks, batchfiles,
inplace, no IPv6, 64-bit system inums, 64-bit internal inumsrsync comes with
ABSOLUTELY NO WARRANTY. This is free software, and you
are welcome to redistribute it under certain conditions. See the GNU
General Public Licence for is a file transfer program capable of
efficient remote update
via a fast differencing : rsync [OPTION]... SRC [SRC]... DEST
or rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
or rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
or rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST
or rsync [OPTION]... [USER@]HOST:SRC [DEST]
or rsync [OPTION]... [USER@]HOST::SRC [DEST]
or rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
The ':' usages connect via remote shell, while '::' & 'rsync://' usages connect
to an rsync daemon, and require SRC or DEST to start with a module
s
-v, --verbose increase verbosity
-q, --quiet suppress non-error messages
--no-motd suppress daemon-mode MOTD (see manpage caveat)
-c, --checksum skip based on checksum, not mod-time & size
-a, --archive archive mode; same as -rlptgoD (no -H)
--no-OPTION turn off an implied OPTION (e.g. --no-D)
-r, --recursive recurse into directories
-R, --relative use relative path names
--no-implied-dirs don't send implied dirs with --relative
-b, --backup make backups (see --suffix & --backup-dir)
--backup-dir=DIR make backups into hierarchy based in DIR
--suffix=SUFFIX set backup suffix (default ~ w/o --backup-dir)
-u, --update skip files that are newer on the receiver
--inplace update destination files in-place (SEE MAN PAGE)
--append append data onto shorter files
-d, --dirs transfer directories without recursing
-l, --links copy symlinks as symlinks
-L, --copy-links transform symlink into referent file/dir
--copy-unsafe-links only "unsafe" symlinks are transformed
--safe-links ignore symlinks that point outside the source tree
-k, --copy-dirlinks transform symlink to a dir into referent dir
-K, --keep-dirlinks treat symlinked dir on receiver as dir
-H, --hard-links preserve hard links
-p, --perms preserve permissions
-E, --executability preserve the file's executability
--chmod=CHMOD affect file and/or directory permissions
-o, --owner preserve owner (super-user only)
-g, --group preserve group
--devices preserve device files (super-user only)
--specials preserve special files
-D same as --devices --specials
-t, --times preserve times
-O, --omit-dir-times omit directories when preserving times
--super receiver attempts super-user activities
-S, --sparse handle sparse files efficiently
-n, --dry-run show what would have been transferred
-W, --whole-file copy files whole (without rsync algorithm)
-x, --one-file-system don't cross filesystem boundaries
-B, --block-size=SIZE force a fixed checksum block-size
-e, --rsh=COMMAND specify the remote shell to use
--rsync-path=PROGRAM specify the rsync to run on the remote machine
--existing skip creating new files on receiver
--ignore-existing skip updating files that already exist on receiver
--remove-source-files sender removes synchronized files (non-dirs)
--del an alias for --delete-during
--delete delete extraneous files from destination dirs
--delete-before receiver deletes before transfer (default)
--delete-during receiver deletes during transfer, not before
--delete-after receiver deletes after transfer, not before
--delete-excluded also delete excluded files from destination dirs
--ignore-errors delete even if there are I/O errors
--force force deletion of directories even if not empty
--max-delete=NUM don't delete more than NUM files
--max-size=SIZE don't transfer any file larger than SIZE
--min-size=SIZE don't transfer any file smaller than SIZE
--partial keep partially transferred files
--partial-dir=DIR put a partially transferred file into DIR
--delay-updates put all updated files into place at transfer's end
-m, --prune-empty-dirs prune empty directory chains from the file-list
--numeric-ids don't map uid/gid values by user/group name
--timeout=TIME set I/O timeout in seconds
-I, --ignore-times don't skip files that match in size and mod-time
--size-only skip files that match in size
--modify-window=NUM compare mod-times with reduced accuracy
-T, --temp-dir=DIR create temporary files in directory DIR
-y, --fuzzy find similar file for basis if no dest file
--compare-dest=DIR also compare destination files relative to DIR
--copy-dest=DIR ... and include copies of unchanged files
--link-dest=DIR hardlink to files in DIR when unchanged
-z, --compress compress file data during the transfer
--compress-level=NUM explicitly set compression level
-C, --cvs-exclude auto-ignore files the same way CVS does
-f, --filter=RULE add a file-filtering RULE
-F same as --filter='dir-merge /.rsync-filter'
repeated: --filter='- .rsync-filter'
--exclude=PATTERN exclude files matching PATTERN
--exclude-from=FILE read exclude patterns from FILE
--include=PATTERN don't exclude files matching PATTERN
--include-from=FILE read include patterns from FILE
--files-from=FILE read list of source-file names from FILE
-0, --from0 all *-from/filter files are delimited by 0s
--address=ADDRESS bind address for outgoing socket to daemon
--port=PORT specify double-colon alternate port number
--sockopts=OPTIONS specify custom TCP options
--blocking-io use blocking I/O for the remote shell
--stats give some file-transfer stats
-8, --8-bit-output leave high-bit chars unescaped in output
-h, --human-readable output numbers in a human-readable format
--progress show progress during transfer
-P same as --partial --progress
-i, --itemize-changes output a change-summary for all updates
--out-format=FORMAT output updates using the specified FORMAT
--log-file=FILE log what we're doing to the specified FILE
--log-file-format=FMT log updates using the specified FMT
--password-file=FILE read password from FILE
--list-only list the files instead of copying them
--bwlimit=KBPS limit I/O bandwidth; KBytes per second
--write-batch=FILE write a batched update to FILE
--only-write-batch=FILE like --write-batch but w/o updating destination
--read-batch=FILE read a batched update from FILE
--protocol=NUM force an older protocol version to be used
--version print version number
(-h) --help show this help (-h works with no other options)Use "rsync
--daemon --help" to see the daemon-mode command-line options.
Please see the rsync(1) and (5) man pages for full documentation.
See [url]/[/url] for updates, bug reports, and answers2.
列出 rsync server 端的 modules:
c:>rsync rsync://rsync-server-ip
test3.列出 module test 下的文件和目录列表:
c:>rsyn rsync://rsync-server-ip/test/
drwxr-xr-x 0 2007/06/15 10:09:57 .
drwxr-xr-x 0 2007/06/15 10:17:58 test1
drwxr-xr-x 0 2007/06/21 04:00:00 svntest
drwxr-xr-x 0 2007/06/21 02:00:33 trac
drwxr-xr-x 0 2007/06/21 03:00:27 wiki
-rw-r--r-- 2029823 2007/06/01 04:00:02 java.7z
-rw-r--r-- 361554934 2007/06/01 04:08:56 oracle.7z当然还可以列出 module
下的某个目录下的文件列表:
c:>rsyn rsync://rsync-server-ip/test/wiki/ (注意要列出目录 wiki 下的东西要以/
结尾,不然它只会列出 wiki 目录自身)3.同步整个 module 到本地:
c:> rsync -v -t -l -r rsync://rsync-server-ip/test/ .test
注意:因为同步的时候需要计算服务器文件和本地文件之间的差异等,在同步文件的
过程中 CPU 的占用可能会达到 100%,所以如果你是用它来做计划任务式的备份和同步
的话,最好选择系统空闲的时候,比如早上4点。
版权声明:本文标题:在Windows 上使用 rsync 同步文件和目录 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1710113211h559182.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论