Debian下rsync配置过程

一、特性简介rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的特性如下:1、可以镜像保存整个目录树和文件系统。2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。3、无须特殊权限即可安装。4、优化的流程,文件传输效率高。5、可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。6、支持匿名传输。

算法介绍: 假定在名为α和β的两台计算机之间同步相似的文件 A 与 B ,其中α对文件 A 拥有访问权,β对文件 B 拥有访问权。并且假定主机α与

β之间的网络带宽很小。那么 rsync 算法将通过下面的五个步骤来完成: 1.β将文件 B 分割成一组不重叠的固定大小为 S 字节的数据块。最后一块可能会比 S 小。 2.β对每一个分割好的数据块执行两种校验:一种是 32 位的滚动弱校验,另一种是 128 位的 MD4 强校验。 3.β将这些校验结果发给α。 4.α通过搜索文件 A 的所有大小为 S 的数据块 ( 偏移量可以任选,不一定非要是 S 的倍数 ) ,来寻找与文件 B 的某一块有着相同的弱

校验码和强校验码的数据块。这项工作可以借助滚动校验的特性很快完成。 5.α发给β一串指令来生成文件 A 在β上的备份。这里的每一条指令要么是对文件 B 经拥有某一个数据块而不须重传的证明,要么是一个

数据块,这个数据块肯定是没有与文件 B 的任何一个数据块匹配上的。

二、配置步骤1、系统环境server: Debian 5.0.5 ip: 192.168.206.120client: Debian 5.0.5 ip: 192.168.206.200

rsync版本# rsync –versionrsync version 3.0.3 protocol version 30

安装server和client端都需要安装rsync,只不过client端不需要配置:# apt-get install rsync

2、配置server端的/etc/rsyncd.conf文件拷贝示例配置文件到/etc目录# cp /usr/share/doc/rsync/examples/rsyncd.conf /etc/

查看rsyncd.conf文件,按需要修改即可# more /etc/rsyncd.conf # sample rsyncd.conf configuration file# GLOBAL OPTIONS#motd file=/etc/motdlog file=/var/log/rsyncd.log# for pid file, do not use /var/run/rsync.pid if# you are going to run rsync out of the init.d script.pid file=/var/run/rsyncd.pid#syslog facility=daemon#socket options=# MODULE OPTIONS

[www] # 这里是认证的模块名,在client端需要指定

comment = source high app archive path = /data/webroot/rsynctest # 需要同步的目录 use chroot = yes# max connections=10 lock file = /var/lock/rsyncd# the default for read only is yes… read only = no list = yes uid = www-data gid = www-data# exclude = # exclude from = # include =# include from = auth users = appbackup # 认证的用户名,,如果没有这行,则表明是匿名 secrets file = /etc/rsyncd.secrets # 认证密码文件 strict modes = yes hosts allow = 192.168.206.200 #充许任何主机连接# hosts deny = ignore errors = no # 可以忽略一些无关的IO错误 ignore nonreadable = yes transfer logging = yes# log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes. timeout = 600 refuse options = checksum dry-run dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz

3、在server端创建密码文件/etc/rsyncd.secrets # vi /etc/rsyncd.secrets 1 ;username:password 2 appbackup:123456

4、在server端将rsync以守护进程形式启动# vi /etc/default/rsync RSYNC_ENABLE=true

启动srync# /etc/init.d/rsync start

查看监听端口# netstat -anp|grep rsynctcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 2533/rsync tcp6 0 0 :::873 :::* LISTEN 2533/rsync

日志信息# tail -f /var/log/rsyncd.log 2011/01/25 16:40:36 [30371] name lookup failed for 192.168.206.200: Name or service not known2011/01/25 16:40:36 [30371] connect from UNKNOWN (192.168.206.200)2011/01/25 08:40:36 [30371] rsync on www/ from appbackup@unknown (192.168.206.200)2011/01/25 08:40:36 [30371] building file list2011/01/25 08:40:36 [30371] sent 263 bytes received 66 bytes total size 23138912011/01/27 08:45:05 [2533] rsyncd version 3.0.3 starting, listening on port 873

5、client端测试创建密码文件,只填密码即可,密码要与server端的一致。debian-vm:~# vi /etc/rsyncd.secrets 123456

同步debian-vm:~# /usr/bin/rsync -vzrtopg –delete –progress appbackup@192.168.206.120::www /data/webroot –password-

file=/etc/rsyncd.secrets receiving incremental file listdeleting 20101129.csv./ip.txt 2358 100% 2.25MB/s 0:00:00 (xfer#1, to-check=2/7)

sent 81 bytes received 886 bytes 1934.00 bytes/sectotal size is 2375 speedup is 2.46

参数说明:-vzrtopg里的v是verbose,z是压缩,r是recursive,topg都是保持文件原有属性如属主、时间的参数。–progress是指显示出详细的进度情况–delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除

6、crontab定期更新脚本# more rsync.sh #!/bin/bash #列表显示远程的目录/usr/bin/rsync -vzrtopg –delete –progress appbackup@192.168.206.120::www –password-file=/etc/rsyncd.secrets /usr/bin/rsync -vzrtopg –delete –progress appbackup@192.168.206.120::www /data/webroot –password-

file=/etc/rsyncd.secrets

听过许多故事,见过旅行风景,就这样,

Debian下rsync配置过程

相关文章:

你感兴趣的文章:

标签云: