linux rsync安裝使用

 Rsync簡介
rsync是類unix系統下的數據鏡像備份工具,從軟件的命名上就可以看出來了——remote sync。它的特性如下:
可以鏡像保存整個目錄樹和文件系統。
可以很容易做到保持原來文件的權限、時間、軟硬鏈接等等。
無須特殊權限即可安裝。
優化的流程,文件傳輸效率高。
可以使用rcp、ssh等方式來傳輸文件,當然也可以通過直接的socket連接。
支持匿名傳輸,以方便進行網站鏡象。

軟件下載
rysnc的主頁地址爲:
http://rsync.samba.org/
目前最新版本爲3.1.0pre1。可以選擇從原始網站下載:
http://rsync.samba.org/ftp/rsync/

一、下載、安裝rsync
#tar -zxvf rsync-3.1.0pre1.tar.gz
#cd rsync-3.1.0pre1
#./configure --prefix=/usr/local/rsync
#make 
#make install 

二、配置rsync server
1、配置/etc/rsyncd.conf(需要手動創建)
     rsyncd.conf的參數寫在上邊就是全局參數,寫在模塊裏的就是模塊參數
#vim /etc/rsyncd.conf
全局參數
uid = root                                  //運行RSYNC守護進程的用戶
gid = root                                  //運行RSYNC守護進程的組
use chroot = no                      //不使用chroot
max connections = 4             // 最大連接數爲4
strict modes =yes                  //是否檢查口令文件的權限
port = 873                                //默認端口873
pid file = /var/run/rsyncd.pid      //pid文件的存放位置
lock file = /var/run/rsync.lock     //鎖文件的存放位置
log file = /var/log/rsyncd.log      //日誌記錄文件的存放位置
          
模塊參數
[backup]                                //這裏是認證的模塊名,在client端需要指定
path = /home/backup/        //需要做鏡像的目錄,不可缺少!
comment = This is a test       //這個模塊的註釋信息 
ignore errors                           //可以忽略一些無關的IO錯誤
read only = no                         // 是否只讀
list = no                                    //不允許列文件
auth users = caiyou              //認證的用戶名,如果沒有這行則表明是匿名,此用戶與系統用戶無關
secrets file = /etc/rsync.secrets           //密碼和用戶名對比表,密碼文件自己創建
hosts allow = 192.168.1.1,10.10.10.10      //允許主機
hosts deny = 0.0.0.0/0                                   //禁止主機
#transfer logging = yes

 2、配置rsync密碼
 /etc/rsync.secrets(名字隨便寫,只要和上邊配置文件裏的一致即可),格式(一行一個用戶)
格式      賬號:密碼
  #vi /etc/rsync.secrets
例子:
Hening:111111
權限:因爲rsync.secrets存儲了rsync服務的用戶名和密碼,所以非常重要。要將rsync.pas設置爲root所有, 且權限爲600。
#cd /etc
#chown root.root rsync.secrets 
#chmod 600 rsync.secrets

3.rsyncd.motd(配置歡迎信息,可有可無)
   # vi /etc/rsyncd.motd
   rsyncd.motd記錄了rsync服務的歡迎信息,你可以在其中輸入任何文本信息,如:
   Welcome to use the rsync services!

三、啓動rsync server
 
    #/usr/bin/rsync --daemon --config=/etc/rsyncd.conf
   
四、檢查是否有873端口 
   [root@caiyou genghui]# netstat -anltp | grep rsync
    tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      15107/rsync         
    tcp        0      0 :::873                            :::*                             LISTEN      15107/rsync

五.配置rsync client 
1、設定密碼
   #vi /etc/rsync.pas
   111111

   修改權限
   #cd /etc
   #chown root.root rsync.pas 
   #chmod 600 rsync.pas
2、client連接server
  從server端取文件
  rsync -vzrtopg --progress --delete [email protected]::backup /home/backup --password-file=/etc/rsync.pas
  向server端上傳文件
   rsync -vzrtopg --progress --password-file=/root/rsync.pas  /home/backup [email protected]::backup
    這個命令將把本地機器/home/backup目錄下的所有文件(含子目錄)全部備份到rsync server的backup模塊的設定的備份目錄下。
    請注意如果路徑結束後面帶有"/",表示備份該目錄下的內容,但不會創建該目錄,如不帶"/"則創建該目錄。

    rsync用法:
        rsync [OPTION]… SRC DEST

  rsync [OPTION]… SRC [USER@]HOST:DEST

  rsync [OPTION]… [USER@]HOST:SRC DEST

  rsync [OPTION]… [USER@]HOST::SRC DEST

  rsync [OPTION]… SRC [USER@]HOST::DEST

  rsync [OPTION]… rsync://[USER@]HOST[:PORT]/SRC[DEST]

     1)拷貝本地文件:當SRC和DEST路徑信息都不包括單個冒好“:”分隔符時就啓動這種工作模式,如:rsync-a /data /backup

      2)使用一個遠程的shell程序(如rsh,ssh)來實現將本地機器的內容拷貝到遠程機器。當DEST路徑包括單個冒號“:”分隔符,就啓動這種工作模式,如:rsync-avz *.c foo:src

      3)使用一個遠程的shell程序(如rsh,ssh)來實現將遠程機器的內容拷貝到本地機器。當SRC路徑包含單個冒號“:”分隔符,就器送這種工作模式,如:rsync -avz foo:src/bar /backup

      4)從遠程rsync服務器中拷貝文件到本地機。當SRC路徑信息包含” ::”分隔符時啓動該模式。如:rsync -av [email protected]::www /databack

      5)從本地機器拷貝文件到遠程rsync服務器中。當DST路徑信息包含” ::”分隔符時啓動該模式。如:rsync -av /databack [email protected]::www

      6)列遠程機的文件列表。這類似於rsync傳輸,不過只要在命令中省略掉本地機信息即可。如:rsync-v rsync://172.16.78.192/www 


3、自動運行
1)vi /usr/local/rsync/time.sh     //製作腳本文件
把下邊的內容複製進去
#!/bin/bash
/usr/bin/rsync -vzrtopg --progress --delete [email protected]::backup /home/backup --password-file=/etc/rsync.pas
2) crontab -e
加入55 * * * * /usr/local/rsync/time.sh        //每55分運行一次time.sh腳本文件

六、 iptables
iptables -A INPUT -p tcp -s ! 11.22.33.44 --dport 873 -j DROP
如此, 只有 11.22.33.44 這個 client IP 能進入這臺 rsync server.
命令介紹:-rvlHpogDtS
rsync命令參數
-v表示verbose詳細顯示
-z表示壓縮
-r表示recursive遞歸
-t表示保持原文件創建時間
-o表示保持原文件屬主
-p表示保持原文件的權限
-g表示保持原文件的所屬組
-D --devices 保持設備文件信息
-a  歸檔模式,表示以遞歸方式傳輸文件,並保持所有文件屬性,等於-rlptgoD
-P表示代替-partial和-progress兩者的選項功能
-e, –rsh=COMMAND 指定使用rsh、ssh方式進行數據同步
--partial阻止rsync在傳輸中斷時刪除已拷貝的部分(如果在拷貝文件的過程中,傳輸被中斷,rsync的默認操作是撤消前操作,即從目標機上
刪除已拷貝的部分文件。)
--progress  是指顯示出詳細的進度情況
--delete       是指如果服務器端刪除了這一文件,那麼客戶端也相應把文件刪除,保持真正的一致。
–delete-excluded   同樣刪除接收端那些被該選項指定排除的文件(即使這些文件也存在於發送方)
--exclude     不包含/ins目錄
--size-only   這個參數用在兩個文件夾中的差別僅是源文件夾中有一些新文件,不存在重名且被修改過的文件,因爲這種文件有可能會因爲內容被修改可大小一樣,而被略過。這個參數可以大大地提高同步的效率,因爲它不需要檢查同名文件的內容是否相同。
--password-file來指定密碼文件,內容包含server端指定認證用戶的密碼。
        這樣就可以在腳本中使用而無需交互式地輸入驗證密碼了,這裏需要注意的是這份密碼文件權限屬性要設得只有屬主可讀。

[email protected]::backup
hening是指server端指定認證的用戶
192.168.0.217是指服務器端的ip
::backup 表示服務器端需要同步的模塊名稱;


發佈了28 篇原創文章 · 獲贊 10 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章