rsync命令

来源:互联网 发布:淘宝赚钱助手是真的吗 编辑:程序博客网 时间:2024/05/22 12:06

Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远 程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。 

Rsync 有配置文件,这里只看命令的几个常用选项

Rsync的命令格式可以为以下六种:

  rsync [OPTION]... SRC DEST

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

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

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

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

  rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]

[不带任何选项]

我们经常这样使用rsync:

$ rsync main.c machineB:/home/userB

1 只要目的端的文件内容和源端不一样,就会触发数据同步,rsync会确保两边的文件内容一样。
2 但rsync不会同步文件的“modify time”,凡是有数据同步的文件,目的端的文件的“modify time”总是会被修改为最新时刻的时间。
3 rsync不会太关注目的端文件的rwx权限,如果目的端没有此文件,那么权限会保持与源端一致;如果目的端有此文件,则权限不会随着源端变更。
4 只要rsync有对源文件的读权限,且对目标路径有写权限,rsync就能确保目的端文件同步到和源端一致。
5 rsync只能以登陆目的端的账号来创建文件,它没有能力保持目的端文件的输主和属组和源端一致。(除非你使用root权限,才有资格要求属主一致、属组一致)

[-I选项]

我们经常这样使用-I选项:

$ rsync -I main.c machineB:/home/userB

1 -I选项会让rsync变得很乖很老实,它会挨个文件去发起数据同步。
2 -I选项可以确保数据的一致性,代价便是速度上会变慢,因为我们放弃了“quick check”策略。(quick check策略,就是先查看文件的时间戳和文件大小,依次先排除一批认为相同的文件)
3 无论情况如何,目的端的文件的modify time总会被更新到当前时刻。

【-v选项】

这个选项,简单易懂,就是让rsync输出更多的信息,我们可以举一个例子:

$ rsync -vI main.c machineB:/home/userB                                                   main.csent 81 bytes  received 42 bytes  246.00 bytes/sectotal size is 11  speedup is 0.09

[-z选项]

这是个压缩选项,只要使用了这个选项,rsync就会把发向对端的数据先进行压缩再传输。对于网络环境较差的情况下建议使用。

一般情况下,-z的压缩算法会和gzip的一样。

[-r选项]

如果你真的想同步文件夹,那就要加上-r选项,即recursive(递归的、循环的),像这样:

$  rsync -r superman machineB:/home/userB

[-l选项]

不带选项将无法复制软连接,此时需要加上-l (L的小写)选项

$ rsync -l softlink machineB:/home/userB

使用了-l选项后,rsync会完全保持软链接文件类型,原原本本的将软链接文件复制到目的端,而不会“follow link”到指向的实体文件。所以实际作用不大啊

[-L选项]

使用 -L选项之后,rsync会同步软连接所指向的实际文件。即同步后是一个正常的文件不是一个软连接。


0 0
原创粉丝点击