linux下rsync搭建

 一、什麼是rsync

 

  rsync,remote synchronize顧名思意就知道它是一款實現遠程同步功能的軟件,它在同步文件的同時,可以保持原來文件的權限、時間、軟硬鏈接等附加信息。 rsync是用 “rsync 算法”提供了一個客戶機和遠程文件服務器的文件同步的快速方法,而且可以通過ssh方式來傳輸文件,這樣其保密性也非常好,另外它還是免費的軟件。

 

  rsync 包括如下的一些特性:

 

  能更新整個目錄和樹和文件系統;

  有選擇性的保持符號鏈鏈、硬鏈接、文件屬於、權限、設備以及時間等;

  對於安裝來說,無任何特殊權限要求;

  對於多個文件來說,內部流水線減少文件等待的延時;

  能用rsh、ssh 或直接端口做爲傳輸入端口;

  支持匿名rsync 同步文件,是理想的鏡像工具;

 

二、架設rsync服務器

安裝

 

cd /usr/local/src

 

wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz

 

tar -zxvf rsync-3.0.9.tar.gz

 

cd rsync-3.0.9

./configure --prefix=/usr/local/rsync && make && make install

 

在/etc/下創建配置文件

 

rsync共有3個配置文件 

 

rsync的主要有以下三個配置文件rsyncd.conf(主配置文件)、rsyncd.secrets(密碼文件)、rsyncd.motd(rysnc服務器信息)

 

其中rsyncd.conf 是必有的 rsyncd.secrets是進行同步操作時候的rsync用戶 這個用戶必須是在本地存在的真實用戶 rsyncd.motd是服務器信息 如登陸的歡迎信息都在裏面顯示 這個可以不用要

 

 

 

 

touch /etc/rsyncd.conf  #創建rsyncd.conf,這是rsync服務器的配置文件。

touch /etc/rsyncd.secrets  #創建rsyncd.secrets ,這是用戶密碼文件。

chmod 600 /etc/rsyncd/rsyncd.secrets  

#將rsyncd.secrets這個密碼文件的文件屬性設爲root擁有, 且權限要設爲600, 否則無法備份成功!

 

rsyncd.motd 的寫法爲

Welcome to use the mike.org.cn rsync services!

           2002------2009

 

這個配置文件可以不用要

 

 

密碼文件格式很簡單,rsyncd.secrets的內容格式爲:用戶名:密碼

 

如 easylife:keer

  root:mike

 

chown root.root rsyncd.secrets  #修改屬主

  chmod 600 rsyncd.secrets     #修改權限

注:1、將rsyncd.secrets這個密碼文件的文件屬性設爲root擁有, 且權限要設爲600, 否則無法備份成功!            出於安全目的,文件的屬性必需是隻有屬主可讀。

    2、這裏的密碼值得注意,爲了安全你不能把系統用戶的密碼寫在這裏。比如你的系統用戶easylife密碼是000000,爲了安全你可以讓rsync中的easylife爲keer。這和samba的用戶認證的密碼原理是差不多的。

 

 

 

在rsync 服務器中,全局定義有幾個比較關健的,根據我們前面所給的配置文件 rsyncd.conf 文件;

 

 

secrets file = /etc/rsyncd/rsyncd.secrets 制定用戶文件位置

port = 873  注:指定運行端口,默認是873

 

uid = nobody  

  gid = nobdoy  

 

   注:服務器端傳輸文件時,要發哪個用戶和用戶組來執行,默認是nobody。 如果用nobody 用戶和用戶組,可能遇到權限問題,有些文件從服務器上拉不下來。

use chroot = yes 

 

   注:用chroot,在傳輸文件之前,服務器守護程序在將chroot 到文件系統中的目錄中,這樣做的好處是可能保護系統被安裝漏洞侵襲的可能。缺點是需要超級用戶權限。

 read only = yes 

 

  注:read only 是隻讀選擇,也就是說,不讓客戶端上傳文件到服務器上

hosts allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0 

 

  注:在您可以指定單個IP,也可以指定整個網段,能提高安全性。格式是ip 與ip 之間、ip和網段之間、網段和網段之間要用空格隔開;

 max connections = 5 注:客戶端最多連接數

log file = /var/log/rsync.log 注: rsync服務器的日誌

transfer logging = yes  注:這是傳輸文件的日誌

 

B、模塊定義

 

   模塊定義什麼呢?主要是定義服務器哪個目錄要被同步。每個模塊都要以[name]形式。這個名字就是在rsync 客戶端看到的名字,其實有點象Samba服務器提供的共享名。而服務器真正同步的數據是通過path 指定的。我們可以根據自己的需要,來指定多個模塊。每個模塊要指定認證用戶,密碼文件、但排除並不是必須的

 

下面是前面配置文件模塊的例子:

 

  [rhel4home]  #模塊它爲我們提供了一個鏈接的名字,在本模塊中鏈接到了/home目錄;要用[name] 形式

 

  path = /home    #指定文件目錄所在位置,這是必須指定的

  auth users = root   #認證用戶是root  ,是必須在服務器上存在的用戶

  list=yes   #list 意思是把rsync 服務器上提供同步數據的目錄在服務器上模塊是否顯示列出來。默認是yes 。如果你不想列出來,就no ;如果是no是比較安全的,至少別人不知道你的服務器上提供了哪些目錄。你自己知道就行了;

  ignore errors  #忽略IO錯誤

  secrets file = /etc/rsyncd.secrets   #密碼存在哪個文件

  comment = linuxsir home  data  #註釋可以自己定義

  exclude = beinan/ samba/     

 

  注:exclude是排除的意思,也就是說,要把/home目錄下的easylife和samba排除在外; easylife/和samba/目錄之間有空格分開

 

 

啓動rsync服務器

/usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf  #--config用於指定rsyncd.conf的位置,如果在/etc下可以不寫

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章