rsync特征

  1. 速度:第一次的rsync同步源的整个目录到目标位置。之后,rsync只传递改变的块或字节到目标位置,传输非常快。

  2. 安全:rsync在传输中允许使用ssh协议加密数据。

  3. 更少的带宽:rsync分别在发送和接收端对数据进行压缩和解压缩。

  4. 特权:不需要特殊权限来安装和执行rsync。

rsync语法

$ rsync options source destination
#source和destination可以是本地或远程。在远程的情况下,需要指定登录名、远程服务器的名称和位置。

rsync使用示例

  1. 在本地服务器上同步两个目录

    $ rsync -zvr 源目录 目标目录
    # -z 允许压缩
    # -v  详细输出
    # -r  递归
    # rsync 不会同步源文件或目录的时间戳
  2. 用rsync –a同步时间戳

    $ rsync -azv 源目录 目标目录
  3. 只同步一个文件

    $ rsync -v /var/test.txt /root/temp/
  4. 将本地文件同步到远程服务器

    $ rsync -avz 源目录  username@remote_server_ip:path
  5. 将远程文件同步到本地服务器

    $ rsync -avz username@remote_server_ip:path 目标目录
  6. 指定使用某一协议同步

    $ rsync -avz -e ssh username@remote_server_ip:path 目标目录
  7. 不覆盖目标位置已改变的文件

    # 如果目标位置的文件已被修改,而我们不希望旧文件覆盖它时,可以使用-u选项。
    $ rsync -avzu username@remote_server_ip:path /root/temp
  8. 查看rsync进度

    $ rsync -avz --progress username@remote_server_ip:path /root/temp
  9. 删除目标位置创建的文件

#若我们希望rsync时删除在源位置不存在而在目标位置存在的文件,可以使用-delete选项。
$ rsync -avz --delete username@remote_server_ip:path /root/temp
  1. 在目标位置不创建新文件

    # 使用-existing选项使得在同步时只同步目标位置存在的文件,而不创建新文件。
    $ rsync -avz --existing username@remote_server_ip:path /root/temp
  2. 查看源和目标的不同文件或目录

    $ rsync -avzi username@remote_server_ip:path /root/temp/
    receiving file list ... done
    >f.st.... Basenames
    .f....og. Dirnames
    =====================================
    > 代表文件已被传输到本地主机。
    f:代表这是个文件
    s:代表文件大小发生变化
    t:代表时间戳发生变化
    o:属主发生变化
    g:属组发生变化
  3. 在传输时指定包括或排除某些文件

    rsync -avz --include 'P*' --exclude '*' username@remote_server_ip:path /root/temp
  4. 不传输大文件

    # 使用rsync –max-size选项后,rsync将不传输大于指定大小的文件
    rsync -avz --max-size='100K' username@remote_server_ip:path /root/temp/
  5. 传输整个文件

    # rsync的主要特征之一是它只传输改变的块到目标位置,而不是传输整个文件。如果网络带宽对你不是问题(CPU有),您可以使用-w选项来传输整个文件。它会加速rsync过程,因为它不用在源和目标位置执行校验和。
    $ rsync -avzW  username@remote_server_ip:path /root/temp