zoukankan      html  css  js  c++  java
  • Rsync 文件同步工具

    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的个人页面

  • 相关阅读:
    离开学校一年多
    ZOJ Problem Set–1337 Pi
    Old Bill
    ZOJ Problem Set–1382 A Simple Task
    ZOJ Problem Set 2975 Kinds of Fuwas
    ZOJ Problem Set 2952 Find All M^N Please
    Generate Passwords
    Java 数据类型转换之字符串
    ZOJ Problem Set 2987 Misspelling
    Digital Roots
  • 原文地址:https://www.cnblogs.com/zoho/p/3131917.html
Copyright © 2011-2022 走看看