下面給出幾個使用 rsync 伺服器的示例。
在生產伺服器上同時運行 rsync 服務
假設網路中有如下3台電腦
生產伺服器 - pandr (192.168.0.220) 備份主機A - backupa (192.168.0.221) 備份主機B - backupb (192.168.0.222)
在 pandr 上配置 rsync 服務
1、編輯設定檔
# vi /etc/rsyncd/rsyncd.confuid = nobodygid = nobodysyslog facility = local3use chroot = yesread only = yesmax connec tions = 4timeout = 300motd file = /etc/rsyncd/rsyncd.motDPId file = /var/run/rsyncd.pidlock file = /var/run/rsync.lockhost s allow=192.168.0.221 192.168.0.222hosts deny=*secrets file = /etc/rsyncd/rsyncd.secretsauth users = bua,bublist=yes[ home] uid = root gid = root path = /home comment = product server home exclude = www/ samba/ ftp/[www] path = /home/www co mment = product server www exclude = logs/
下面考查一些許可權問題:
# tree /home -p/home|-- [drwx------] crq|-- [drwxr-xr-x] ftp|-- [drwx------] osmond|-- [drwxr-xr-x] samba`-- [drwxr-xr-x] www |-- [drwxr-xr-x] cgi-bin|-- [drwxr-xr-x] fcgi-bin|-- [drwxr-xr-x] htdocs`-- [drwxr-xr-x] logs
從上面的目錄許可權可知,每個使用者的自家目錄對組和其他使用者沒有任何許可權。 當 uid 和 gid 設置為 nobody時,rsync用戶端由於無權進入使用者的自家目錄,所以不能同步各個自家目錄下的內容。 為此,[home] 部分將 uid 和 gid 設置為 root。
rsyncd 預設將日誌寫入 /var/log/messages 檔,上面的 「syslog facility = local3」 配置將使用LOCAL3 日誌設備(facility)。 為此需要在 /etc/syslog.conf 檔中添加如下行:
local3.info /var/log/rsync.log
然後使用如下命令重新開機 syslog
# service syslog restart
2、編輯 rsync 服務的口令檔
# touch /etc/rsyncd/rsyncd.secrets# chmod 600 /etc/rsyncd/rsyncd.secrets# vi /etc/rsyncd/rsyncd.secretsbua: backupa-s-passwordbub:backupb-s-password
不要在 /etc/rsyncd/rsyncd.secrets 中使用與同名系統使用者帳號相同的口令。 3、以 xinetd 運行 rsync 服務
# chkconfig rsync on# service xinetd restart
4、配置防火牆
使用 iptables 配置允許 rsync 服務埠(預設為 873)通過,同時限制 rsync 用戶端的連接。
例如:
&HTTP://www.aliyun.com/zixun/aggregation/37954.html">nbsp;
# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT# iptables -A INPUT -p tcp -s ! 192.168.0.221 --dport 873 -j DROP
可以使用如下命令查看添加的防火牆規則:
# iptables -L