linux rsync介紹(八)

【教程主題】:rsynclinux

【1】 rsync介紹算法

Rsync(Remote Synchronize) 是一個遠程資料同步工具,可經過LAN/WAN快速同步多臺主機,Rsync使用所爲的「Rsync演算法」來使本地主機和遠程主機之間達到同步,這個演算法並非每次都整份傳送,它只傳送兩臺計算機之間所備份的資料不一樣的部分,所以速度至關快。sql

Rsync的優勢以下:vim

1、能夠鏡像保存整個目錄樹和文件系統。安全

2、能夠很容易的作到保持原來文件的許可權、時間、軟連接等。服務器

3、無須特使許可權便可安裝。socket

4、擁有優化的流程,文件傳輸效率高。工具

5、可使用RshSSH等方式來傳輸文件,固然也能夠直接經過Socket鏈接。測試

6、支持匿名傳輸。優化

         另外,與SCP相比,傳輸速度不是一個層次級的。咱們在局域網時常常用RsyncSCP傳輸大量Mysql數據,發現Rsync至少比Scp20倍以上,因此你們若是須要在Linux/Unix服務器之間互傳海量資料,Rsync是很是好的選擇。

 

【2】 rsync服務端方式

首先檢查rsync是否安裝:

rpm –q rsync

rsync-2.6.8-3.1

說明rsync已安裝,若是提示出現 package rsync is not installed  則說明這個軟件報沒有安裝你們可使用yum進行安裝

另外,關閉防火牆和SElinux,由於是內網中傳輸,因此這些不必

service iptables stop && chkconfig iptables off 

setenforce 0

 

 

配置文件/etc/rsyncd.conf。這個文件是本身定義的,並非系統建立的,固然你也能夠叫不一樣的名字,後面再寫上詳細註釋。

uid = nobody

gid = nobody

user chroot = no

max connections = 200

timeout = 600

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsyncd.lock

log file = /var/log/rsyncd.log

[backup]

path=/backup/

ignore errors

read only = no

list = no

hosts allow = 192.168.0.0/255.255.255.0

auth users = test

secrets file = /etc/rsyncd.password

註釋:

uid = nobody

進行備份的用戶,nobody 爲任何用戶

gid = nobody 

進行備份的組,nobody爲任意組

use chroot = no

若是"use chroot"指定爲true,那麼rsync在傳輸文件之前首先chroot到path參數所指定的目錄下。這樣作的緣由是實現額外的安全防禦,可是缺點是須要以root權限,而且不能備份指向外部的符號鏈接所指向的目錄文件。默認狀況下chroot值爲true.可是這個通常不須要,我選擇no或false

list = no

不容許列清單

max connections = 200 

最大鏈接數

timeout = 600 

覆蓋客戶指定的IP超時時間,也就是說rsync服務器不會永遠等待一個崩潰的客戶端。

pidfile = /var/run/rsyncd.pid  

pid文件的存放位置

lock file = /var/run/rsync.lock  

鎖文件的存放位置

log file = /var/log/rsyncd.log   

日誌文件的存放位置

[backup]  

這裏是認證模塊名,即跟samba語法同樣,是對外公佈的名字

path = /backup/

這裏是參與同步的目錄

ignore errors  

能夠忽略一些無關的IO錯誤

read only = no

容許可讀可寫

list = no

不容許列清單

hosts allow = 192.168.1.0/255.255.255.0

這裏跟samba的語法是同樣的,只容許192.168.21.0/24的網段進行同步,拒絕其它一切

auth users = test 

認證的用戶名

secrets file = /etc/rsyncd.password  

密碼文件存放地址

注意: 

一、[backup]  認證模塊名和 path = /backup/ 參與同步的目錄

這裏的path 你們要記好了,這裏不要隨便的一設置就直接完事,要知道這裏是認證模塊的,之後從客戶機備份的數據會存儲在這裏。

二、auth users = redhat 認證的用戶名 

這個名字是服務器端實實在在存在用戶,你們不要直接跟步驟走卻忽略了這點。若是服務器端少了這個的話我估計你的數據同步就實現不了,你們要謹記。

三、path = /backup/ 參與同步的目錄

這個須要稍後本身要在根目錄下本身建

cd /

mkdir backup

chmod –R 777 /backup

echo 「test:test」 > /etc/rsync.password

(這裏我設置的是用戶名和密碼一致)

爲了安全起見,我設置他的權限爲600

chmod 600 /etc/rsync.password

 

啓動配置

 

[root@test rsync-3.0.4]# vim /etc/xinetd.d/rsync 

配置rsync servervi /etc/xinetd.d/rsync
disable=yes改成no

service rsync
{
        disable = no
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}

 


[root@test home]# /etc/init.d/xinetd restart
Stopping xinetd:                                           [  OK  ]
Starting xinetd:                                           [  OK  ]

若是xinetd沒有的話,須要安裝一下
[root@test home]# yum -y install xinetd


  RSYNC服務端啓動的兩種方法:
啓動rsync服務端(獨立啓動)
[root@test home]# /usr/bin/rsync --daemon    on

 

 


啓動rsync服務端 (有xinetd超級進程啓動)
[root@test home]# /etc/init.d/xinetd reload

配置rsync自動啓動
[root@test etc]# chkconfig rsync on
[root@test etc]# chkconfig rsync --list
rsync 


加入rc.local
在各類操做系統中,rc文件存放位置不盡相同,能夠修改使系統啓動時把rsync --daemon加載進去。
[root@test home]# vi /etc/rc.local
/usr/local/rsync –daemon           #加入一行

 

客戶端配置:

echo 「test」 > /etc/rsyncd.password

這裏僅僅只須要密碼,不須要用戶了,省得要同步時還要手動互動

chmod 600 /etc/rsync.password

測試:

rsync -vzrtop --delete /home/ce test@192.168.0.206::backup --password-file=/etc/rsyncd.password

從服務器上下載文件

rsync -avz --password-file=/etc/rsyncd.password test@192.168.0.206::backup /home/

從本地上傳到服務器上去

rsync -avz --password-file=/etc/rsyncd.password /home test@192.168.0.206::backup

 

 

 

 

3rsync客戶端方式

經常使用:rsync -av

下載:rsync [參數]  遠程文件(遠程路徑)  本地目錄  

上傳:rsync [參數]  本地文件              遠程目錄

rsync經常使用參數

若是不須要交互式的操做,rsync平時也能夠像scp那樣工做,下列爲經常使用rsync參數。


-a, --archive 歸檔模式,表示以遞歸方式傳輸文件,並保持全部文件屬性,等於-rlptgoD 

-v --verbose:詳細模式輸出
-r --recursive:對子目錄以返回模式處理。
-p --perms:保持文件許可權
-o --owner:保持文件屬主信息
-g --group:保持文件組信息
-t --times:保持文件時間信息
--delete:刪除哪些DST中存在而SRC中不存在的文件或目錄
--delete-excluded:一樣刪除接收端哪些該選項制定排出的文件
-z --compress:對備份的文件在傳輸時進行壓縮處理
--exclude=PATTERN:制定排除不須要傳輸的文件
--include=PATTERN:制定不排除須要傳輸的文件
--exclude-from=FILE:排除FILE中制定模式的文件
--include-from=FILE:不排除FILE中制定模式匹配的文件