诺亚方舟

沉淀

rsync学习心得

rsync这个东西,平时看的文章多了,但是总是没有总结,对用法也没有深入去研究,这里从网上学习到的文章做一个实践总结与记录。

1、什么是rsync

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

A、基本特点:

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

b、只要目的端的文件内容和源端不一样,就会触发数据同步,rsync会确保两边的文件内容一样,但rsync不会同步文件的“modify time”,凡是有数据同步的文件,目的端的文件的“modify time”总是会被修改为最新时刻的时间(文件访问时间等属性、读写等权限、文件内容等有任何变动,都会被认为修改),目标目录下如果文件比源目录还新,则不会同步;

c、默认情况下,不会太关注目的端文件的rwx权限,如果目的端没有此文件,那么权限会保持与源端一致;如果目的端有此文件,则权限不会随着源端变更;

d、rsync只能以登陆目的端的账号来创建文件,它没有能力保持目的端文件的输主和属组和源端一致(除非你使用root权限,才有资格要求属主一致、属组一致),只要rsync有对源文件的读权限,且对目标路径有写权限,rsync就能确保目的端文件同步到和源端一致;

e、默认情况下,源文件被删除了目标目录下并不会删除该文件,除非带上–delete选项;

f、源路径的最后是否有斜杠有不同的含义:有斜杠,只是复制目录中的文件;没有斜杠的话,不但要复制目录中的文件,还要复制目录本身;

g、如果采用daemon方式启动rsync,每次修改配置文件后不用重启rsync daemon,其每次执行程序的时候会自动重读该配置;

B、运行形式:

rsync有两种操作方式,一种是通过ssh(命令直连,但是需要被连机器的登录账号权限),另一种是通过socket(需要被连机器启动daemon,默认端口是873,通过事先设置的rsync模块连接)。

使用daemon方式被拉或者被推方一定需要启动daemon!

安装rsync与启动daemon不在本文讨论范围。

C、命令语法:

rsync的命令格式可以为以下六种:(SRC DEST 顺序为从哪到哪)
rsync [OPTION]… SRC DEST 

拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号”:”分隔符时就启动这种工作模式。如:rsync -a /data /backup
rsync [OPTION]… SRC [USER@]HOST:DEST

使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号”:”分隔符时启动该模式。如:rsync -avz *.c foo:src
rsync [OPTION]… [USER@]HOST:SRC DEST

使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号”:”分隔符时启动该模式。如:rsync -avz foo:src/bar /data

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

USER为rsync模块对应auth users,SRC为rsync模块名。从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含”::”分隔符时启动该模式。如:rsync -av root@192.168.78.192::www /databack
rsync [OPTION]… SRC [USER@]HOST::DEST

USER为rsync模块对应auth users,SRC为rsync模块名。从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含”::”分隔符时启动该模式。如:rsync -av /databack root@192.168.78.192::www
rsync [OPTION]… rsync://[USER@]HOST[:PORT]/SRC [DEST]

列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。比较少用。如:rsync -v rsync://192.168.78.192/www

2、rsync选项介绍

http://roclinux.cn/?p=2643

3、rsync过滤规则

http://share.blog.51cto.com/278008/567578

附:rsync启动 http://man.linuxde.net/rsync

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>