CentOS 6.5 rsync服務的安裝與配置


一、rsync 簡介
 
  Rsync(remote synchronize)是一個遠程數據同步工具,可通過LAN/WAN快速同步多台主機間的文件,也可以使用 Rsync 同步本地硬盤中的不同目錄。 
  Rsync 是用於取代rcp的一個工具,Rsync使用所謂的 “Rsync 算法” 來使本地和遠程兩個主機之間的文件達到同步,這個算法只傳送兩個文件的不同部分,而不是每次都整份傳送,因此速度相當快。您可以參考 How Rsync Works A Practical Overview 進一步了解 rsync 的運作機制。
  Rsync支持大多數的類Unix系統,無論是Linux、Solaris還是BSD上都經過了良好的測試。此外,它在windows平台下也有相應的版本,比較知名的有cwRsync和Sync2NAS。
  Rsync 的初始作者是 Andrew Tridgell 和 Paul Mackerras,它當前由 http://rsync.samba.org維護。
  Rsync的基本特點如下:
  1. 可以鏡像保存整個目錄樹和文件系統;
  2. 可以很容易做到保持原來文件的權限、時間、軟硬鏈接等;
  3. 無須特殊權限即可安裝;
  4. 優化的流程,文件傳輸效率高;
  5. 可以使用rcp、ssh等方式來傳輸文件,當然也可以通過直接的socket連接;
  6. 支持匿名傳輸,以方便進行網站鏡像。
  在使用 rsync 進行遠程同步時,可以使用兩種方式:遠程 Shell 方式(建議使用 ssh,用戶驗證由 ssh 負責)和 C/S 方式(即客戶連接遠程 rsync 服務器,用戶驗證由 rsync 服務器負責)。
  無論本地同步目錄還是遠程同步數據,首次運行時將會把全部文件拷貝一次,以后再運行時將只拷貝有變化的文件(對於新文件)或文件的變化部分(對於原有文件)。
  rsync 在首次復制時沒有速度優勢,速度不如 tar,因此當數據量很大時您可以考慮先使用 tar 進行首次復制,然后再使用 rsync 進行數據同步。
 
rsync生產常用參數
參數 說明 默認值
exclude 指定多個由空格隔開的多個文件或目錄(相對路徑),並將其添加到 exclude 列表中。這等同於在客戶端命令中使用 –exclude 來指定模式。
exclude from 指定一個包含 exclude 規則定義的文件名,服務器從該文件中讀取 exclude 列表定義。
include 指定多個由空格隔開的多個文件或目錄(相對路徑),並將其添加到 include 列表中。這等同於在客戶端命令中使用 –include 來指定模式 。
include from 指定一個包含 include 規則定義的文件名,服務器從該文件中讀取 include 列表定義。
 
以守護進程(socket)的方式傳輸數據(這個是rsync自身的重要功能)
防火牆開放873端口(兩個節點)
# /sbin/iptables -I INPUT -p tcp --dport 873 -j ACCEPT
# /etc/rc.d/init.d/iptables save
# service iptables restart
 
關閉selinux(兩個節點)
# vi /etc/selinux/config
修改如下內容:
SELINUX=disabled
# setenforce 0
 
安裝相關依賴包(兩個節點)
# yum -y install gcc gcc-c++ make perl wget rsync
二、rsync服務器應用案例
A、rsync服務器部署
1.安裝兩種方式
(1)、yum install -y rsync    ###在線安裝rsync        
(2)、wget http://pkgs.repoforge.org/rsync/rsync-3.0.9-2.el6.rfx.x86_64.rpm 
  rpm -ivh rsync-3.0.9-2.el6.rfx.x86_64.rpm     ###下載rsync軟件包之后rpm安裝
 
2.查看是否安裝成功
[root@A data]# rpm -qa rsync ###查看是否安裝成功      
rsync-3.0.6-12.el6.x86_64
 
3.創建rsync主配置rsyncd.conf文件
[root@A data]# vi /etc/rsyncd.conf 
uid = nobody
gid = nobody
use chroot = no    
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[donglq]
path = /donglq/
ignore errors
read only = false
list = false
hosts allow = 192.168.0.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[data]
path = /data/
gnore errors
read only = false
list = false
hosts allow = 192.168.0.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync_data.password

 

pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
lock file=/var/run/rsyncd.lock
secrets file = /etc/rsyncd.pw

[channel]
path = /home/b2b/tomcat-9400-channel/webapps/ROOT
comment = channel
port = 873
uid = b2b
gid = b2b
timeout = 600
max connections = 200
use chroot = no
read only = yes
list = no
hosts allow = 10.34.200.195
hosts deny = *

 

添加如下內容:
#/etc/rsyncd.conf
#pid文件的存放位置
pid file = /var/run/rsyncd.pid
#日志文件位置,啟動rsync后自動產生這個文件,無需提前創建
log file = /var/log/rsyncd.log
#支持max connections參數的鎖文件
lock file=/var/run/rsyncd.lock
#用戶認證配置文件,里面保存用戶名稱和密碼
secrets file = /etc/rsyncd.pw
#rsync啟動時歡迎信息頁面文件位置
motd file = /etc/rsyncd.motd
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
#自定義名稱
[data]
#設置需要同步的目錄
path = /data/
#模塊名稱與[data]自定義名稱相同
comment = data
指定/data目錄下不需要同步的目錄:exclude = dd,aa
#默認端口
port = 873
#設置rsync運行ID號或賬戶名稱,默認為nobody
uid = nobody
#設置rsync運行GID號或賬戶名稱,默認為nobody
gid = nobody
#設置超時時間
timeout = 600
#最大連接數
max connections = 200
#默認為true,修改為no,增加對目錄文件軟連接的備份
use chroot = no
#設置rsync服務端文件為只讀
read only = yes
#不顯示rsync服務端資源列表
list = no
#允許進行數據同步的備份節點IP地址
hosts allow = 192.168.0.112
#設置拒絕所有(除hosts allow定義的主機外)
hosts deny = *

 

如果你的 rsync.conf是默認位置即:/etc/rsync.conf 那么你直接執行
/usr/bin/rsync --daemon
即可
如果你的配置文件是自己定的位置,那么在后面跟上conf文件的參數就可以了
/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
 
4.創建rsync虛擬用戶密碼文件
echo "rsync_backup:123456" >/etc/rsync.password   
chmod 600 /etc/rsync.password           
echo "rsync_backup:123456" >/etc/rsync_data.password
chmod 600 /etc/rsync_data.password

5.創建共享文件夾並將其用戶屬組修改為nobody

[root@A data]mkdir /donglq
[root@A data]mkdir /data
[root@A data]chmod 600 /donglq /data
[root@A data]chown nobody.nobody /data /donglq
6.rsync --daemon ###daemon模式啟動rsync       
[root@A data]#  netstat -lntup | grep 873  ###查看rsync是否啟動
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 1380/rsync          
tcp 0 0 :::873 :::* LISTEN 1380/rsync
設置開機啟動(源節點)
# echo "/usr/bin/rsync --daemon">>/etc/rc.d/rc.local
B、rsync客戶端部署
1. 安裝  
yum install -y rsync ###在線安裝rsync
 
2. 查看是否安裝成功
netstat -lntup|grep 873
 
3. 創建密碼文件
echo "123456" >/etc/rsync.password
chmod 600 /etc/rsync.password
echo "123456" >/etc/rsync_data.password
chmod 600 /etc/rsync_data.password
 
C、rsync調試
[root@B ~]# rsync -avz rsync_backup@192.168.129.128::donglq /data/ --password-file=/etc/rsync.password 
 
[root@C data]# rsync -avz rsync_backup@192.168.129.128::data /data/ --password-file=/etc/rsync_data.password 

 

rsync -avH tom@10.34.200.215::data /home/b2b/data/

rsync -avH --delete --exclude=/home/b2b/data/ROOT/WEB-INF/classes/aggregation.properties tom@10.34.200.215::channel /home/b2b/data

rsync -avH --delete --exclude=aggregation.properties tom@10.34.200.215::channel /home/b2b/data


0 * * * * rsync -avH tom@10.34.200.75::data /opt/data75/ > /dev/null 2>&1

0 * * * * rsync -avH tom@10.34.200.11::data /opt/zicai_phone/huichuan/ > /dev/null 2>&1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM