基于rsync的文件同步传输

基于rsync的文件同步传输

一、实验目的

我们经常有一些文件需要异地备份,这里我们使用rsync能简单的进行异地备份,rsync不是同步传输的,所以更适合异地备份。

二、安装rsync

rsync.* 可以使用rpm包安装或者直接yum安装。

三、配置服务端

rsync默认装好后没有安装配置我们,所以我们需要自己创建配置文件。

配置文件 1: /etc/rsync.conf

uid = nobody #rsync操作文件的时候使用的用户

gid = nobody #rsync操作文件的时候使用的用户组

use chroot = no #是否启用chroot

max connections = 4 #最大连接数

pid file = /var/run/rsync.pid #存储pid的文件

lock file = /var/run/rsync.lock #锁文件存储地址

log file = /var/log/rsyncd.log #日志文件存放位置

motd file = /var/log/rsyncd.motd #登录欢迎信息

hosts allow = 127.0.0.1 192.168.0.0/24 #运行连接的主机

auth users = BackupUser,Keny #用户名(非系统用户)

secrets file = /etc/rsyncd.secrets #对应用户名的密码文件

[www] #共享名

path = /var/www #路径(绝对路径)

comment = apacheWWWfiles #描述

read only = true #是否只读

list = false #是否能列表




在上述配置文件中有几个配置文件需要我们手动去书写:

配置文件 2: /var/log/rsyncd.motd

welcome using rsync service!


secrets这个文件里是 用户名:密码的格式,密码是明文书写的,所以我们需要把这个文件的权限设置为600,为了账户安全性。

书写完后这些文件后,我们需要修改他们的权限为600.

设置文件权限

chmod 600 /etc/rsyncd.conf

chmod 600 /etc/rsyncd.motd

chmod 600 /etc/rsyncd.secrets

由于rsync服务是由xinetd来管理的一个服务,所以我们还需要去修改相关的服务设置文件。

配置文件 4: /etc/xinetd.d/rsync

service rsync

{

  disable = no #开启该服务

  flags = IPv4

  socket_type = stream

  wait = no

  user = root

  server = /usr/bin/rsync

  server_args = --daemon

  log_on_failure += USERID

}

经过以上这些配置后,我们需要重启xinetd,来启用我们的rsync服务端。

service xinetd restart

四、客户端使用服务

我们之前服务端配置的密码非常繁杂而难以记忆,而且手工输入这些密码也是非常痛苦的,这里我们可以设置一个文件来保存我们需要使用用户对应的密码。

echo 132fds98z2sd234dfg > ~/rsyncClient.passwd

chmod 600 ~/rsyncChient.passwd

这里我们在家目录下面创建了一个保存密码的文件并且设置权限为600,如果权限不设置的话后面rsync的客户端会警示且要求手工输入密码。

接下来我们使用客户端工具来同步服务端的内容,首先进入到我们需要同步文件的目录。

接下来,运行rsync客户端

rsync -Rav –delete –password-file=~/rsyncClient.passwd BackupUser@192.168.0.32::www /tmp/www

运行完以上这条命令后,就把服务端的www共享下的文件全部同步/tmp/www目录下

-Rav 表示相对路径,归档模式和显示详细信息

-delete 表示若同步到的目录下有服务端没有的文件,删除之

-password-file 指定密码文件的位置

后面的格式是 用户名@IP::共享名 /同步到的目录

五、总结

本文简单的描述的rsync的服务端设置和客户端的使用,从配置过程可见rsync是一个易用的同步工具。

posted @ 2009-05-13 22:50  Hello! Linux 博客  Views(1200)  Comments(0Edit  收藏  举报