前言:
一台伺服器,為了保證在熱備服務或者負載均衡時,不同的機器間的服務相同。需要設定配置同步。
因此我們可以使用遠端資料同步工具rsync來實現。
rsync介紹:
它具有以下特點:
1,可以映象的儲存整個目錄樹和檔案系統。
2,可以保留檔案的許可權,時間,軟硬連線等。
3,安全:可使用scp或ssh來傳輸,也可使用socket來傳輸。
4,快速:第一次同步會複製所有內容,之後同步就只會複製修改過的內容。而且同步的時候進行壓縮解壓縮,能夠占用更少的寬頻。
支援匿名傳輸。
安裝rsync工具:
安裝三步走。
通過防火牆:
我們要讓伺服器和客戶端上的rsync埠都能夠通過防火牆。rsync預設埠是873
因此執行如下命令:
#iptables -a input -p tcp -dport 873 -j accept
#iptables -l 注意:此句是檢查防火牆是否開啟873埠
建立配置檔案:
touch rsyncd.conf
配置檔案rsyncd.conf內容:
#global setting
uid = root
gid = root
use chroot = no
max connections = 0
port = 873
pid file = /var/run/rsyncd.pid
lock file = /var/lock/rsyncd.lock
log file = /var/log
#module setting
[sync_data]
path = /home/test/
read only = no
list = yes
hosts allow = 0.0.0.0/0
hosts deny = 0.0.0.0/0
#auth users = sys
#secrets file = /etc/rsyncd.pas
服務開啟:
假設rsync執行檔案的路徑是/home/bin/rsync,配置檔案的路徑是/home/conf/rsync.conf
先執行一次關閉操作,再執行下面的命令
/home/bin/rsync --daemon --config=/home/conf/rsyncd.conf
服務關閉:
獲取/var/run/rsyncd.pid中的pid
kill -9 pid
rm -fr /var/run/rsyncd.pid
狀態查詢:
1,首先要看/var/run/rsyncd.pid是否存在,
若存在通過ps auxf | grep "/home/bin/rsync" | grep daemon | grep -v grep | wc -l命令看是否開啟。若開啟則開啟,若關閉則關閉。
若不存在說明已關閉。
2,檢查定時任務檔案/var/spool/cron/root中是否含有/home/bin/rsync的行,若含有說明開啟了定時配置,若不含有說明沒有開啟定時配置。
/home/bin/rsync -varz --delete --progress @目標ip::sync_data /home/test/
其中目標ip就是我們的要關聯的ip
/home/test/就是我們要同步的目錄
手動上傳:
/home/bin/rsync -varz --delete --progress /home/test/ @目標ip::sync_data
1,將定時任務檔案/var/spool/cron/root中的/home/bin/rsync行清空。
2,將 */1 * * * * /home/bin/rsync -aqz --delete --progress @目標ip::sync_data /home/test/ 2> /dev/null || true
這句命令加入到定時任務檔案/var/spool/cron/root中
定時上傳:
1,將定時任務檔案/var/spool/cron/root中的/home/bin/rsync行清空。
2,將 */1 * * * * /home/bin/rsync -aqz --delete --progress /home/test/ @目標ip::sync_data 2> /dev/null || true
這句命令加入到定時任務檔案/var/spool/cron/root中
關閉定時:
將定時任務檔案/var/spool/cron/root中的/home/bin/rsync行清空。
rsyncd.conf配置檔案詳解:
a、全域性定義
在rsync 伺服器中,全域性定義有幾個比較關健的,根據我們前面所給的配置檔案 rsyncd.conf 檔案;
pid file = /var/run/rsyncd.pid 注:告訴程序寫到 /var/run/rsyncd.pid 檔案中;
port = 873 注:指定執行埠,預設是873,您可以自己指定;
address = 192.168.1.171 注:指定伺服器ip位址
uid = nobody
gid = nobdoy
注:伺服器端傳輸檔案時,要發哪個使用者和使用者組來執行,預設是nobody。 如果用nobody 使用者和使用者組,可能遇到許可權問題,有些檔案從伺服器上拉不下來。所以我就偷懶,為了方便,用了root 。不過您可以在定義要同步的目錄時定義的模組中指定使用者來解決許可權的問題。
use chroot = yes
注:用chroot,在傳輸檔案之前,伺服器守護程式在將chroot 到檔案系統中的目錄中,這樣做的好處是可能保護系統被安裝漏洞侵襲的可能。缺點是需要超級使用者許可權。另外對符號鏈結檔案,將會排除在外。也就是說,你在 rsync伺服器上,如果有符號鏈結,你在備份伺服器上執行客戶端的同步資料時,只會把符號鏈結名同步下來,並不會同步符號鏈結的內容;這個需要自己來嚐 試
read only = yes
注:read only 是唯讀選擇,也就是說,不讓客戶端上傳檔案到伺服器上。還有乙個 write only選項,自己嘗試是做什麼用的吧;
#limit access to private lans
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
注:客戶端最多連線數
motd file = /etc/rsyncd/rsyncd.motd
注:motd file 是定義伺服器資訊的,要自己寫 rsyncd.motd 檔案內容。當使用者登入時會看到這個資訊。比如我寫的是:
++++++++++++++++++++++++++++++++++++++++++++++
welcome to use the mike.org.cn rsync services!
2002------2009
++++++++++++++++++++++++++++++++++++++++++++++
log file = /var/log/rsync.log
注:rsync 伺服器的日誌;
transfer logging = yes
注:這是傳輸檔案的日誌
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
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/目錄之間有空格分開
[rhel4opt]
path = /opt
list=no
comment = optdir
auth users = beinan
secrets file = /etc/rsyncd/rsyncd.secrets
ignore errors
通過以上操作 我們就可以很好的實現同步配置了。
完!!
rsync同步工具
linux rsync同步工具 1 rsync介紹 rsync是一款開源的 快速的 多功能的 可實現全量及增量的本地或遠端資料同步備份的優秀工具。rsync軟體適用於unix linux windows等多種作業系統平台。rsync和ssh帶的scp命令比較相似,但又優於scp命令的功能,scp每次...
Rsync 資料同步工具
rsync 資料同步工具 一,rsync的工作方式 有三大類分別是 1 本地間類似cp命令的複製方式,本地間的資料傳輸服務。2 網路間兩台不同ip伺服器間資料傳輸,伺服器與伺服器之間進行資料同步。3 多組伺服器之間,以socket程序的方式,啟動rsync程序進行監聽。1,本地間的資料傳輸服務 同一...
Rsync遠端同步配置
rsync服務端配置 安裝rsync軟體包 yum y install rsync 生成rsyncd.conf配置檔案,具體引數可man rsyncd.conf cat etc rsyncd.conf 建立rsync使用者並啟動服務 useradd s sbin nologin m rsync rs...