rsync简介

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

缺点:rsync同步需要扫描所有文件进行对比,当文件非常大时,会消耗很多资源和时间

==============================================================

RSYNC的特性

rsync:功能类似cp,scp

  特点:(远程传输默认是不加密的)

  1、可以镜像保存整个目录树或文件系统

  2、较高的数据传输效率

  3、可以借助于ssh实现安全的远程传输

  4、支持匿名传输

 

  rsync命令的工作模式:

    第一中模式:shell模式,即为本地模式;

    第二种模式:远程shell模式,可以利用ssh协议承载远程传输过程;

    第三种模式:列表模式,仅列出源中的内容,-n;

    第四种模式:服务模式,工作为rsync为守护进程,能够接受客户端的数据同步请求;

使用rsync的基本参数和用法

  rsync命令的选项:

    -n:同步测试,不执行真正的复制过程

    -v:详细输出模式

    -q:静默模式

    -c:checksum,开启校验功能

    -r:递归辅助

    ***rsync命令中,如果源路径是目录,且复制路径时末尾有/,则会复制目录内的所有内容;如果

    没有/,则会复制目录及目录的所有文件

    -a:归档,保留文件的原有属性

    -p:保留文件的权限

    -t:保留文件是时间戳

    -l:保留符号链接

    -g:保留属组

    -o:保留属主

    -D:保留设备文件

    -e ssh:使用ssh作为传输承载

    -z:压缩后传输

    --progress:显示传输进度

    --stats:

使用格式:

         Access via remote shell:

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

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

         Access via rsync daemon:

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

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

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

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

******************更详细的使用请参考官方文档*******************************

使用rsync实现数据同步

主机

ip地址

rsynchostone

172.16.1.20

rsynchosttwo

172.16.1.21

这里以两台web服务器为例,根目录均为/data/htdocs/www

1、为rsynchoxtone配置配置文件

   #vim     /etc/rsyncd.conf

####################################

###########Globle setting##############

uid = nobody

gid = nobody

user chroot  = no

max connections = 5

timeout =  300

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsyncd.lock

log file = /var/log/rsyncd.log

###################################

[www]

path = /data/htdocs/

ignore errors = yes

read only = no

list = faulte

hosts allow = 192.168.1.131

auth users = www

secrets file = /etc/rsyncd.password

=====================

创建密码文件

#vim /etc/rsyncd.password

www:mageedu         //注意密码不能超过八各字符

2、重启xinetd服务

#/etc/init.d/xinetd restart

3、为rsynchosttwo安装inotify-tools

****由于inotify特性需要Linux内核的支持,在安装inotify-tools前要先确认Linux系统内核是否达到了 2.6.13以上,如果Linux内核低于2.6.13版本,就需要重新编译内核加入inotify的支持,也可以用如下方法判断,内核是否支持 inotify

    参看内核版本:

    #uname -r

    编译安装inotify-tools

    1)下载相关源码包:

http://lists.pld-linux.org/mailman/pipermail/pld-cvs-commit/Week-of-Mon-20110418/309980.html

    2)编译安装

       #tar  xf  inotify-tools-3.14.tar.gz

       #cd  inotify-tools-3.14

       #./configure && make && make install

4、为rsynchosttwo上的inotify创建开机启动脚本

    #vim  /root/rsync.sh

#################################################

#!/bin/bash

src=/data/htdocs/www/

des=www

ip=192.168.1.130   

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e modify,delete,create,attrib  $src | while read file

rsync -vzrtopg --delete --progress $src www:@ip::des --password-file=/etc/rsyncd.password &&

echo "$src was rsyncd .  now !"

done

5、启动守护进程,启动脚本

  #service xinetd start

  #bash -x rsync.sh

6、在rsynvhosttwo的根目录创建文件,就可以在rsynchostone的根目录看见了