就是远程同步( Remote Sync )的简称。 特点: 1, 可以镜像保存整个目录树和文件系统 2, 很容易做到保持原来文件的权限,时间,属主,软硬连接" name="description" />

Rsync数据远程备份

发表于:2007-07-04来源:作者:点击数: 标签:
Rsync MI LY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">就是远程同步( Remote Sync )的简称。 特点: 1, 可以镜像保存整个目录树和文件系统 2, 很容易做到保持原来文件的权限,时间,属主,软硬连接

RsyncMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">就是远程同步(Remote Sync)的简称。

特点:

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

2,   很容易做到保持原来文件的权限,时间,属主,软硬连接等

3,   19821017

4,   无须特殊权限

5,   优化的流程,文件传输速率较高

6,   可使用rcp,ssh等方式来传输文件,也可直接通过socket来进行连接

7,   支持匿名传输,方便网站镜像。

安装:

URL://rsync.samba.org             现在最新版本为2.6.4.

# ./configure

#make

#make install

 

测试系统:

ServerA : Redhat9.0 IP : 192.168.0.217                   (Server)

ServerB : Redhat9.0 IP : 192.168.0.244                    (Client)

Rsync就是远程同步(Remote Sync)的简称。

特点:

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

2,   很容易做到保持原来文件的权限,时间,属主,软硬连接等

3,   19821017

4,   无须特殊权限

5,   优化的流程,文件传输速率较高

6,   可使用rcp,ssh等方式来传输文件,也可直接通过socket来进行连接

7,   支持匿名传输,方便网站镜像。

安装:

URL://rsync.samba.org             现在最新版本为2.6.4.

# ./configure

#make

#make install

 

测试系统:

ServerA : Redhat9.0 IP : 192.168.0.217                   (Server)

ServerB : Redhat9.0 IP : 192.168.0.244                    (Client)

 

PS:必须在ServerAB上都安装rsync,其中A是以Server模式运行rsyncB是以Client模式运行rsync

 

服务器的启动方式:#/usr/local/bin/rsync –daemon          server端以守护进程形式运行。

在启动时启动rsync         

1,      加入.netd.conf
         #vi /etc/services
,加入rsync   873/tcp,指定rsync的服务端口是873
         #vi /etc/inetd.conf
,加入rsync  stream  tcp   nowait  root  /bin/rsync rsync –daemon

2,      加入rc.local

         #vi /etc/rc.d/rc.local,加入rsync --daemon

默认启动端口:873

Rsync服务器配置文件:/etc/rsyncd.conf           (手工创建)

 

ServerA(Server)端的配置文件:分全局参数和模块参数

#全局参数

uid = nobody             
gid = nobody
use chroot = no         #
不使用chroot
max connections = 4         #
最大连接数为4
pid file = /var/run/rsyncd.pid          pid
文件的存放位置
lock file = /var/run/rsync.lock        
锁文件的存放位置
log file = /var/log/rsyncd.log    #
日志记录文件的存放位置
#
模块参数
[web_test]            #
这里是认证的模块名,在client端需要指定
path = /home/web_test/    #
需要做镜像的目录,不可缺少!
comment = This is a test #
这个模块的注释信息
ignore errors            #
可以忽略一些无关的IO错误
read only = yes            #
只读
list = no            #
不允许列文件
auth users = test        #
认证的用户名,如果没有这行,则表明是匿名,此用户与系统无关
secrets file = /etc/backserver.pas    #
认证文件名

server端的认证文件:/etc/backserver.pas
# cat /etc/inburst.pas
test:huang1017            
前面为认证的用户名,后面为密码;处于安全考虑,此文件具有只读属性。

client端测试:

#rsync –zvrtopg –progress –delete test@192.168.0.217::web_test /tmp password-file=/etc/rsync.pass

Password:

receiving file list ... done
./
1
785 (100%)
a.c
4086 (100%)
index.html
10680 (100%)
b
0 (100%)
ip.c
3956 (100%)
./
wrote 190 bytes  read 5499 bytes  758.53 bytes/sec
total size is 19507  speedup is 3

 

参数解释:z表示压缩,v表示verbose,详细显示,r表示recursive递归,t表示保持原文件创建时间,o表示保持原文件属主,p表示保持原文件的参数,g表示保持原文件的所属组,更多参数查看—help--progress

是指显示出详细的进度情况,--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。test@192.168.0.217::web_test中,其中test是指server端指定认证的用户,192.168.0.217是指服务器端的ip::web_test 表示服务器端需要同步的模块名称;/tmp是同步后的文件指存放在本机的目录地址。可以用--password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。--password-file所指定的文件内容只包含server端指定认证用户的密码。

 

脚本实例:

1.

#!/bin/sh
DATE=`date +%w`

rsync -vzrtopg --progress --delete test@192.168.0.217::web_test /home/quack/backup/$DATE --password-file=/etc/rsync.pass > /var/log/rsync.$DATE

2.

修改/etc/crontab做好定时
# echo "15      4       *       *       6       root    rsync.sh">>/etc/crontab

原文转自:http://www.ltesting.net