日期:2014-05-16  浏览次数:20593 次

Linux下rsync文件同步服务器配置详解

RSYNC软件介绍:
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的特性如下:
可以镜像保存整个目录树和文件系统。
可以很容易做到保持原来文件的权限、时间、软硬链接等等。
无须特殊权限即可安装。
优化的流程,文件传输效率高。
可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
支持匿名传输,以方便进行网站镜象。
软件下载
rysnc的主页地址为:
http://rsync.samba.org/
目前最新版本为2.4.6。可以选择从原始网站下载:
http://rsync.samba.org/ftp/rsync/


一、下载、安装rsync
#tar zxvf rsync-2.6.9.tar.gz
#cd rsync-2.6.9
#./configure --prefix=/usr/local/rsync
#make
#make install

?

1 什么是rsync;

    rsync is a file transfer program for Unix systems. rsync uses the “rsync algorithm” which provides a very fast method for bringing remote files into sync. It does this by sending just the differences in the files across the link, without requiring that both sets of files are present at one of the ends of the link beforehand.

    rsync 是一个Unix系统下的文件同步和传输工具。rsync是用 “rsync 算法”提供了一个客户机和远程文件服务器的文件同步的快速方法。

    Some features of rsync include
    rsync 包括如下的一些特性:
    * can update whole directory trees and filesystems
    能更新整个目录和树和文件系统;
    * optionally preserves symbolic links, hard links, file ownership, permissions, devices and times
    有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间等;
    * requires no special privileges to install
    对于安装来说,无任何特殊权限要求;
    * internal pipelining reduces latency for multiple files
    对于多个文件来说,内部流水线减少文件等待的延时;
    * can use rsh, ssh or direct sockets as the transport
    能用rsh、ssh 或直接端口做为传输入端口;
    * supports anonymous rsync which is ideal for mirroring
    支持匿名rsync 同步文件,是理想的镜像工具;


2 rsync 服务器的理由;

    rsync 服务器架设比较简单,可能我们安装好rsync后,并没有发现配置文件,以及rsync服务器启动程序,因为每个管理员可能对rsync 用途不一样,所以一般的发行版只是安装好软件就完事了,让管理员来根据自己的用途和方向来自己架设rsync服务器;因为这个rsync应用比较广,能在 同一台主机进行备份工作,还能在不同主机之间进行工作。在不同主机之间的进行备份,是必须架设rsync 服务器的。

    以我的观点上看,如果在同一台主机进行文件的备分,用复制工具cp就好了。没必要用rsync 这么相对复杂的工具,cp也简单易用,当然这仅仅是个人观点;

    对于重量级服务器来说,应该有网络备份服务器来说,只有本地备份还是不够的,最好还是有网络备份主机,这样数据的安全才有保证。毕竟数据放在服务器本地上还是不太安全,比如磁盘坏掉、被骇客攻入服务器删除数据。其实服务器本身价值并不大,重要的是数据的价值。

    另外对于大量文件从一台服务器上迁移到另一台服务器上,rsync 的确是一个不可不用传输工具。公司有一台文件服务器,配置是CPU Intel Celeon 333Mhz,内存128M,硬盘IDE 80Gx3=240G,里面仅是第一个硬盘的12G的分区安装系统,用了256M做为交换分区,其它的空间我都用来存数据,通过LVM卷来管理磁盘空间, 我分了一个 180G的空间给数据存放,当时数据存储容量已经达到了160多G。当时的情况是服务器空间有限,没做本地备份。更不可能新增硬盘上去,因为这台机器没做 RAID,硬盘坏掉一个,数据会全毁掉,安全性没有一点保障。在这种情况下,为了保证数据的安全性,我被迫做了一台带有Raid5支持的文件服务器。在选 择如何把数据文件完整的传输到新服务器上,我想到了很多的工具,最后想到了rsync 。我花了十分钟架设并调试了rsync ,然后就开工文件传输,因为文件服务器上的文件太多,老的文件服务器配置又低,大约花了两三天吧才得以把所有文件传输完毕。


3 架设rsync服务器过程;

    架设rsync 服务器比较简单,写一个配置文件rsyncd.conf 。文件的书写也是有规则的,我们可以参照rsync.samba.org 上的文档来做;当然我们首先要安装好rsync 这个软件才行;


3.1 rsync的安装;

    软件安装过于简单,现在Linux 各大发行版都提供这个软件包,当然您也可以自己编译安装,在目前的情况下,我看没太大的必要;
    [root@linuxsir:beinan]$ sudo apt-get? install? rsync? 注:在debian、ubuntu 等在线安装方法;
    [root@linuxsir:beinan]# slackpkg? install? rsync?? 注:Slackware 软件包在线安装;
    [root@linuxsir:beinan]# yum install rsync??? 注:Fedora、Redhat 等系统安装方法;

    其它Linux发行版,请用相应的软件包管理方法来安装;如果是源码包,也就是用下面的办法;

    [root@linuxsir:/home/beinan]# tar xvf? sync-xxxx.tar.gz 或sync-xxx.tar.bz2
    [root@linuxsir:/home/beinan]# cd? sync-xxx
    [root@linuxsir:/home/beinan/sync-xxx]# ./configure --prefix=/usr? ;make ;make install ?? 注:在用源码包编译安装之前,您得安装gcc等编译开具才行;


3.2 rsync服务器的配置文件rsyncd.conf ;

    我们可以参照 rsyncd.conf.html 。具体步骤如下;
    [root@linuxsir:~]#mkdir /etc/rsyncd? 注:在/etc目录下创建一个rsyncd的目录,我们用来存放rsyncd.conf 和rsyncd.secrets文件;
    [root@linuxsir:~]#touch /etc/rsyncd/rsyncd.conf? 注:创建rsyncd.conf ,这是rsync服务器的配置文件;
    [root@linuxsir:~]#touch /etc/