网页设计学习笔记

HTML,CSS,JavaScript

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: :: 管理 ::

Rsync 是一个文件和目录同步工具,它通过计算发送端和接收端的文件各部分校验和,可以只同步文件的改动部分。

Rsync 的基本用法如下:

rsync [OPTION] SRC [SRC] [USER@]HOST:DEST
rsync [OPTION] [USER@]HOST:SRC [DEST]

其中 SRC 为源路径,而 DEST 为目标路径,USER 和 HOST 分别为用户名和密码。前一种用法将本地目录文件上传到服务器目录,后一种用法从服务器目录下载文件到本地目录。例如:

rsync -avz --delete /root/foo/ user@example.com:/root/bar/
rsync -avz user@example.com:/root/bar/ /root/foo/

上面例子中我们分别利用 rsync 同步本地的 foo 目录和服务器的 bar 目录,其中的 -avz 和 --delete 是一些参数。常见的参数及其意义如下:

-a 或 --archive 使用存档模式(遍历子目录,同步软链接和设备文件,保持文件的时间,权限,属主和属组信息),等同于 -rlDtpgo
-e 或 --rsh=COMMAND 指定传输方式,例如 -e "ssh -p 2222"
-v 或 --verbose 输出详细信息
-z 或 --compress 传输时进行压缩处理
--delete 删除源目录中不存在的文件

因此如果我们需要通过 ssh 来同步,常用这样的命令:

rsync -avze ssh --delete /root/foo/ user@example.com:/root/bar/
rsync -avze ssh user@example.com:/root/bar/ /root/foo/

Rsync 命令的源路径参数中,最后面是否有斜杠是不同的。前面例子的第一个命令中, /root/foo/ 的最后包含斜杠,因此 Rsync 会将 foo 目录中的子目录和文件都同步到 bar 目录中。如果将 /root/foo/ 改为 /root/foo,则 Rsync 会将 foo 目录本身同步到 bar 目录中去。目标路径最后是否有斜杠则没有区别。

在 Windows 中我们可以用 cwRsync。注意在 Windows 和 Linux 之间同步,可能会有编码不同造成乱码的问题。

参考资料:
[1] rsync - Wikipedia, the free encyclopedia中文
[2] html version of the rsync man page
[3] Rsync explanation and recommendations
[4] rsync命令用法 -  maucat的个人页面

posted on 2013-06-11 17:09  zoho  阅读(368)  评论(0编辑  收藏  举报