2、配置rsync服務
1.先創建個同步數據的賬號php
1 2 3 |
groupadd rsync useradd -g rsync -s /sbin/nologin -d /home/rsync rsync passwd rsync |
2.rsyncd.confvim
1 |
vim /etc/rsyncd.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
secrets file = /etc/rsyncd.secrets motd file = /etc/rsyncd.motd read only = yes list = yes uid = rsync /*同步用的賬號,此帳戶對模塊要有相應的權限*/ gid = rsync /*同步用的賬號組*/ hosts allow = 10.172.222.246 #哪些電腦能夠訪問rsync服務,多個ip用空格隔開 hosts deny = 192.168.100.0/24 #哪些電腦不能夠訪問rsync服務 max connections = 0 /*最大鏈接數,0表示無限制*/ log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock #再定義rsync目錄 [www] comment = www 's directory from 10.171.88.115 path = /alidata/www /*模塊的路徑*/ chroot = false authusers=rsync #不設置表明客戶端同步無需密碼</pre> |
(注:以上註釋部分真實使用時請去掉,不去掉會有語法錯誤,下同!!!)bash
3.rsyncd.secrets服務器
1 |
vi /etc/rsyncd.secrets |
rsyncd.secrets是存儲rsync服務的用戶名和密碼的,它是一個明文的文本文件,下面給出一個rsyncd.secrets文件的例子:socket
1 |
rsync:abcde |
由於rsyncd.secrets存儲了rsync服務的用戶名和密碼,因此很是重要,所以文件的屬性必須設爲600,只有全部者能夠讀寫:tcp
1 |
chmod 600 /etc/rsyncd.secrets |
4.rsyncd.motdui
1 |
vi /etc/rsyncd.motd |
rsyncd.motd記錄了rsync服務的歡迎信息,你能夠在其中輸入任何文本信息,如:阿里雲
1 |
Welcome to use the rsync services! |
5.servicesspa
1 |
vi /etc/services |
services並非rsync的配置文件,這一步也能夠不作。而修改了services文件的好處就在於系統知道873端口對就的服務名爲rsync。修改services的方法就是確保services中有以下兩行,沒有的話就自行加入:.net
1 2 |
rsync 873/tcp # rsync rsync 873/udp # rsync |
6./etc/xinetd.d/rsync
1 |
vi /etc/xinetd.d/rsync |
創建一個名爲/etc/xinetd.d/rsync文件,輸入如下內容:
1 2 3 4 5 6 7 8 9 10 |
service rsync { disable = no socket_type = stream wait = no user = root server = /usr/local/rsync/bin/rsync #寫你rsync的運行文件目錄 server_args = - -daemon log_on_failure += USERID } |
保存後,就能夠運行rsync服務了。
7.若是有防火牆 rsync服務器和防火牆,關掉對rsync的屏蔽
1 |
iptables -A INPUT -p tcp -m state --state NEW -m tcp - -dport 873 -j ACCEPT |
8.運行rsync 輸入如下命令: (可能xinetd 沒安裝 yum安裝一下就行)
1 |
/etc/rc.d/init.d/xinetd reload |
這樣rsync服務就在這臺機器上(10.171.88.115)運行起來了,接下來就是如何來使用它了。 若是想開機自啓動
1 |
vi /etc/rc.d/rc.local |
將/etc/rc.d/init.d/xinetd reload或者service xinetd start加進去就能夠了
3、rsync客戶端配置
1.安裝rsync,無需啓動rsync服務,由於它又不當rsync服務器
2.
1 |
rsync -avz --progress --delete rsync@10.171.88.115::www /alidata/www |
有設置權限(服務端目錄設置時有authusers:xxxxx)的須要輸入密碼,若是沒有就當即同步啦 若是嫌每次輸入密碼麻煩,新建一個密碼文件,#touch /etc/rsync.secret 編輯
1 |
vim /etc/rsync.secret |
1 |
abcde #裏面寫密碼就好了 |
再
1 |
chmod 600 /etc/rsync.secret |
而後同步時命令就能夠這樣寫:
1 |
rsync -avz --progress --delete --password-file=/etc/rsync.secret rsync@10.171.88.115::www /alidata/www |
3.crontb實現自動同步 先新建一個sh文件
1 2 |
touch /root/rsync.sh vim /root/rsync.sh |
裏面輸入:
1 2 |
!/bin/bash rsync -avz --progress --delete --password-file=/etc/rsync.secret rsync@10.171.88.115::www /alidata/www >> /root/rsync-crontablog.txt |
(這裏把輸出的結果寫到了一個txt文件裏)
ok!下面寫crontb文件:
1 2 |
crontb -e */1 7-23 * * * /root/rsync.sh |
讓它7點到晚上23點每隔一分鐘同步 修改文件權限:
1 |
chmod 755 /root/rsync.sh |
大功告成!!!
(注:以上是客戶端向服務端取文件,你也能夠從客戶端向SERVER端上傳文件,那就要反過來,1個服務器作客戶端,n臺服務器作server端,也就是要配不少次server端的配置,有興趣的同窗能夠嘗試一下。另外我這裏用的是crontab進行最快一分鐘一次有點延時的實時同步,你們能夠嘗試rsync+inotify進行真正的實時同步,推薦博客:http://blog.chinaunix.net/xmlrpc.php?