rsync总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rsync总结相关的知识,希望对你有一定的参考价值。

rsync简介

rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。rsync是Linux系统下的文件同步和数据传输工具,它采用“rsync”算法,可以将一个客户机和远程文件服务器之间的文件同步,也可以在本地系统中将数据从一个分区备份到另一个分区上。如果rsync在备份过程中出现了数据传输中断,恢复后可以继续传输不一致的部分。rsync可以执行完整备份或增量备份。


rsync特点

1.可以镜像保存整个目录树和文件系统;

2.可以很容易做到保持原来文件的权限、时间、软硬链接;无须特殊权限即可安装;

3.可以增量同步数据,文件传输效率高,因而同步时间短;

4.可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接;

5.支持匿名传输,以方便进行网站镜像等;

6.加密传输数据,保证了数据的安全性;


rsync优点与缺点

与传统的cp、tar备份方式对比,rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如,定期地备份文件服务器数据到远端服务器,对本地磁盘定期进行数据镜像等。

但是随着系统规模的不断扩大,rsync的缺点逐渐被暴露了出来。首先,rsync做数据同步时,需要扫描所有文件后进行对比,然后进行差量传输。如果文件很大,扫面文件是非常耗时的,而且发生变化的文件往往是很少一部分,因此rsync是非常低效的方式。其次,rsync不能实时监测、同步数据,虽然它可以通过Linux守护进程的方式触发同步,但是两次触发动作一定会有时间差,可能导致服务器端和客户端数据出现不一致


rsync的工作模式/格式

1.模式:拷贝本地文件

     格式:rsync[OPTION]... SRC DEST

     例子:rsync –av /tmp/1.txt /test

           把本地/tmp/1.txt拷贝到本地/test目录下



2.模式:将本地机器的内容拷贝到远程机器

      格式:rsync[OPTION]... SRC [[email protected]]HOST:DEST

      例子:rsync –av/tmp/1.txt 192.168.1.1:/tmp

              把本地/tmp/1.txt拷贝到远程主机1.1的/tmp目录下



3.模式:将远程机器的内容拷贝到本地机器

      格式:rsync [OPTION]...[[email protected]]HOST:SRC DEST

      例子:rsync –av192.168.1.1:/tmp/1.txt /tmp

        把远程主机1.1的/tmp/1.txt拷贝到本地/tmp目录下



4.模式:从远程rsync服务器中拷贝文件到本地机器

      格式:rsync[OPTION]... [[email protected]]HOST::SRC DEST

      例子:rsync –av192.168.1.1::a/1.txt /tmp

              把远程rsync服务器a模块下的1.txt拷贝到本地/tmp目录下



5.模式:从本地机器拷贝文件到远程rsync服务器中

      格式:rsync[OPTION]... SRC [[email protected]]HOST::DEST

      例子:rsync –av/tmp/1.txt 192.168.1.1::a/tmp

              把本地/tmp/1.txt拷贝到远程rsync服务器a模块下的/tmp目录



6.模式:列出远程机的文件列表

      格式:rsync[OPTION]... rsync://[[email protected]]HOST[:PORT]/SRC [DEST]

      例子:rsync –av rsync://192.168.1.1/tmp

              列出远程主机1.1的/tmp目录




rsync参数

-a   1. 相当于使用了-rlptgoD这一坨选项

      2.以打包的方式传输文件,并保持所有文件属性

      3.-a无法同步硬链接,如果有这方面需求,要加上-H选项

-v   显示详细的传输过程

-r    同步文件夹要加上-r

-l     rsync默认是不支持软链接拷贝的,加上-l参数才能拷贝软链接,如果不加该选项会跳过软链接的拷贝

-L   不直接拷贝软链接,而是拷贝软链接指向的具体文件

-p   保持权限,比如本地传输1.txt到远端,如果远端已经有1.txt这个文件了,就只会同步内容,不会改变远端1.txt的权限

-P   同步过程中显示进度(Progress)

-t    同步时间(atime/ctime/mtime),比如本地传输1.txt到远端,如果远端已经有1.txt这个文件了,就会改变远端1.txt的时间,同步本地1.txt的时间

-g   同步所属组(group)

-o   同步所属主(owner)

-u   仅仅进行更新,比如本地传输1.txt到远端,如果远端已经有1.txt这个文件了,就直接跳过1.txt的同步,不管内容是否一致

-D   原文解释是“preservedevices(root only)”,从字面意思看,就是保持设备文件的原始信息。(没有实际体验过它的好处,所以没有太多发言权)

-z    压缩之后再传输(注意并不是修改为压缩文件,还是源文件)

-e   指定使用rsh、ssh的方式连接。如果远程机器sshd端口并非是22,可以用rsync -e"ssh -p xxx"来指定用别的端口连接

--delete   一锅端把源端的数据拷贝到目的端,即相当于把目的端的数据全部替换为源端的数据(类似替换而不是同步了)

--exclude 不同步哪些文件,写法:--exclude=”test”即不同步包含test关键字的文件(注意必须完全匹配关键字,如果有te文件/tes文件/test1文件都不会同步)


本文出自 “Linux菜鸟” 博客,请务必保留此出处http://490617581.blog.51cto.com/11186315/1757839

以上是关于rsync总结的主要内容,如果未能解决你的问题,请参考以下文章

inotify+rsync实时备份总结

rsync工具详解总结

rsync工具详解总结

rsync工具详解总结

rsync远程数据备份配置之再次总结

rsync 密钥文件错误问题总结