linux rsync介紹(八)

轉載:http://man.linuxde.net/rsync


【1】 rsync介紹

Rsync(Remote Synchronize) 是一個遠程資料同步工具,可通過LAN/WAN快速同步多臺主機,Rsync使用所爲的“Rsync演算法”來使本地主機和遠程主機之間達到同步,這個演算法並不是每次都整份傳送,它只傳送兩臺計算機之間所備份的資料不同的部分,因此速度相當快。

Rsync的優點如下:

1、可以鏡像保存整個目錄樹和文件系統。

2、可以很容易的做到保持原來文件的許可權、時間、軟鏈接等。

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

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  

密碼文件存放地址

注意: 

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

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

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

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

3、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 [email protected].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中制定模式匹配的文件


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