一、服務器端配置:
1、安裝xinetd,並修改rsync相關配置
# yum -y install xinetd
# vi /etc/xinetd.d/rsync
如下代碼:
service rsync
{
disable = yes
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
將disable = yes改成disable = no
然后重啟xinetd
# /etc/init.d/xinetd restart
[
注:如果服務器上裝有防火牆,需要打開端口,默認端口是873
# telnet 127.0.0.1 873
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
# iptables -A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 873 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 873 -j DROP
]
2、編寫rsync.conf配置文件
# vi /etc/rsyncd.conf
內容如下:
port=873
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
[www]
path = /home/www
ignore errors
read only = no
list = no
hosts allow = 192.168.1.0/255.255.255.0 設置允許訪問的ip 可以為*(所有)
auth users = root
secrets file = /etc/rsyncd.secrets
注釋:
port #開放端口
uid = nobody #進行備份的用戶UID,nobody為任何用戶
gid = nobody #進行備份的組GID,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 = /home/www #這里是參與同步的目錄
ignore errors #可以忽略一些無關的IO錯誤
read only = no #允許可讀可寫
list = no #不允許列清單
hosts allow = 192.168.1.0/255.255.255.0 #這里跟samba的語法是一樣的,只允許192.168.1.0/24的網段進行同步,拒絕其它一切IP
auth users = admin #認證的用戶名
secrets file = /etc/rsyncd.secrets #密碼文件存放地址
注意:對於這個地方的配置文件,雖然解釋的很清楚,可是一些朋友始終還會在這里出錯,這里我提亮點易錯點:
[backup]是認證模塊名和 path = /var/www 是參與同步的目錄
這里的path 大家要記好了,這里不要隨便的一設置就直接完事,要知道這里是認證模塊的,以后從客戶機備份的數據會存儲在這里。
3、編寫用戶密碼文件
# vi /etc/rsyncd.secrets
root:1234789 #用戶名:密碼
4、給予只讀權限
# chown root:root /etc/rsyncd.secrets
# chmod 600 /etc/rsyncd.secrets
-rw------- (600) -- 只有屬主有讀寫權限。
-rw-r--r-- (644) -- 只有屬主有讀寫權限;而屬組用戶和其他用戶只有讀權限。
-rwx------ (700) -- 只有屬主有讀、寫、執行權限。
-rwxr-xr-x (755) -- 屬主有讀、寫、執行權限;而屬組用戶和其他用戶只有讀、執行權限。
-rwx--x--x (711) -- 屬主有讀、寫、執行權限;而屬組用戶和其他用戶只有執行權限。
-rw-rw-rw- (666) -- 所有用戶都有文件讀、寫權限。這種做法不可取。
-rwxrwxrwx (777) -- 所有用戶都有讀、寫、執行權限。更不可取的做法。
以下是對目錄的兩個普通設定:
drwx------ (700) - 只有屬主可在目錄中讀、寫。
drwxr-xr-x (755) - 所有用戶可讀該目錄,但只有屬主才能改變目錄中的內容
suid的代表數字是4,比如4755的結果是-rwsr-xr-x
sgid的代表數字是2,比如6755的結果是-rwsr-sr-x
sticky位代表數字是1,比如7755的結果是-rwsr-sr-t
5、創建目錄並修改所有者
# mkdir /home/www/
# chown -R nobody:nobody /home/www
6、啟動服務
# rsync --daemon
7、加入開機自啟動
# echo "rsync --daemon">> /etc/rc.local
二、Linux客戶端進行同步
1、客戶端默認好像已經裝了rsync,沒有的話裝下:
# yum -y install rsync
2、創建密碼文件
# vi /etc/rsyncd.passwd
文件內容如下(只包含密碼部分):
123456789
3、執行異步同步操作:
# /usr/bin/rsync -avz --progress --password-file=/etc/rsyncd.passwdroot@192.168.1.1::www /home/www