Linux系統下如何使用rsync進行數據同步

首先安裝Rsync,好比在Redhat Fedora Linux上或者RHEL AS3上: html

rpm -ivh rsync-2.5.7-5.3E.i386.rpm

安裝完成。 linux

rsync客戶端和服務器端都是同一個執行文件,只不過加的參數不同。 shell

例如,服務器A是192.168.0.100,服務器B是192.168.0.101,例如將101上的/www/downloads/new目錄下的文件同步到192.168.0.100的/www/download目錄下,則100上運行rsync做爲服務器端,101作爲客戶端。 服務器

首先把192.168.0.100服務器端的配置文件創建起來。 ui

vi /etc/rsyncd.conf 內容以下: spa

uid = nobody 
gid = nobody 

use chroot = yes 
max connections = 4 
pid file = /var/run/rsyncd.pid 
lock file = /var/run/rsync.lock 
log file = /var/log/rsyncd.log 

[downloads] 
path = /www/downloads/ 
ignore errors 
read only = false 
list = false 
hosts allow = 192.168.0.101/24 
hosts deny = 0.0.0.0/32 
auth users = backup 
secrets file = /etc/rsyncd.pwd

找個配置文件中,uid和gid指明瞭運行身份,chroot表示鏈接後自動切換目錄,read only=false是容許別的客戶端向本機的服務器端上傳。host allow和deny是限制鏈接地址。auth user是認證用戶名,secrets file = /etc/rsyncd.pwd是表示認證用戶名的時候到這裏讀取密碼。 code

接下來編輯密碼文件: orm

vi /etc/rsyncd.pwd backup:123456 #設置密碼文件權限700:(權限不對會登錄不上)
chmod 700 /etc/rsyncd.pwd #而後啓動rsync服務:
/usr/bin/rsync --daemon #把rsync加入自動啓動腳本,開機後自動啓動:
echo "/usr/bin/rsync --daemon" >> /etc/rc.d/rc.local 
#注意一下iptables必須容許rsync的873端口被鏈接。

如今到192.168.0.101的客戶端上,命令格式以下:
rsync [-參數] 源地址路徑 目標地址路徑
例如將101上的/www/downloads/new目錄下的文件同步到192.168.0.100的/www/downloads目錄中。
則建立執行腳本: htm

vi /root/rsync.sh crontab

rsync -vrtL --progress \ /www/downloads/new/* \ backup@192.168.0.100::downloads \ 
--password-file=/root/rsync.pwd

-v參數表示顯示輸出結果,r表示保持屬性,t表示保持時間,L表示軟link視做普通文件。
建立客戶端的密碼文件:
vi /root/rsync.pwd

123456

注意:客戶端的密碼腳本不帶用戶名。
設置密碼文件權限700:(權限不對會登錄不上)

chmod /root/rsync.pwd #將客戶端腳本加入按期任務:
echo "00 3 * * * root /usr/prima/etc/rsync.sh" >> /etc/crontab #則天天凌晨3點運行同步。

如今能夠直接運行 /root/rsync.sh 觀看效果。

簡單的rsync配置完成。


問題參考此帖: http://hilinux.com/bbs/thread-2125-1-1.html

相關文章
相關標籤/搜索