Rsync簡介
1.Rsync英文全稱Remote synchronization,從軟件的名稱就可以看出來,Rsync具有可使本地和遠程兩台主機之間的數據快速復制同步鏡像,遠程備份的功能,這個功能類似ssh帶的scp命令,但又優於scp命令的功能,scp每次都是全量拷貝,而rsync可以增量拷貝。當然,Rsync還可以在本地主機的不同分區或目錄之間全量及增量的復制數據,這又類似cp命令,但同樣也優於cp命令,cp每次都是全量拷貝,而rsync可以增量拷貝。
2.一個rsync相當於scp,cp,rm,但是還優於他們每一個命令。在同步備份數據時,默認情況下,Rsync通過其獨特的“quick check”算法,它僅同步大小或者最后修改時間發生變化的文件或目錄,當然也可根據權限,屬主等屬性的變化同步,但需要指定相應的參數,甚至可以實現只同步一個文件里有變化的內容部分,所以,可以實現快速的同步備份數據。
Rsync的特性
Rsync的特性如下:
- 支持拷貝特殊文件如鏈接文件,設備等
- 可以有排除(tar?find?)指定文件或目錄同步的功能,相當於打包命令tar的排除功能
- 可以做到保持原文件或目錄的權限,時間,軟硬鏈接,屬主,組等屬性均不改變-p
- 可以實現增量同步,既只同步發生變化的數據,因此數據傳輸效率很高(tar-N)
- 可以使用rcp,rsh,ssh等方式來配合傳輸文件(rsync本身不對數據加密)
- 可以通過socket(進程方式)傳輸文件和數據(服務端和客戶端)
- 支持匿名的或認證(無需系統用戶)的進程模式傳輸,可實現方便安全的進行數據備份及鏡像
部署
首先需要安裝rsync和openssh-client兩個軟件:
openssh-clients ----實現ssh通道傳輸數據
1)配置rsyncd.conf
首先確認 rsync軟件是否安裝 :
Rpm -qa rsync
Vim /etc/rsyncd.conf,添加下面內容
2)創建共享目錄及添加rsync程序用戶
useradd -M -S /sbin/nologin rsync
mkdir /backup
3)啟動服務
rsync --daemon
netstat -antup | grep rsync
4)將服務器端上的/backup文件夾更改屬主屬組
chown -R rsync /backup
ll -d /backup
5)將賬戶密碼文件的權限設定為600
Echo “rsync_backup:123456” > /etc/rsync.password
6)加入開機自啟動
Echo “rsync --daemon” >> /etc/rc.local
如何重啟rsync服務?
pkill rsync 關閉rsync服務
rsync --daemon 啟動rsync服務
二 部署rsync客戶端
1)檢查rsync是否安裝
rpm -qa rsync
1)創建密碼文件
echo “123456” >> /etc/rsync.password
2)將密碼文件的權限設置為600
chmod 600 /etc/rsync.password
ll -d /etc/rsync.password
測試:
1)將客戶端的(指定目錄/目錄內容)推送到服務器端的指定目錄下
Rsync -avz /data/ rsync_backup@192.168.200.128::backup --password-file=/etc/rsync.password
命令說明:
-avz:保持穩健各項屬性不變,-v顯示同步信息 -P顯示具體同步過程
/backup/:要推送的內容所在目錄
rsync_backup:服務器端rsync服務的同步的用戶名(非Linux用戶)
192.168.200.128:rsync服務器IP地址
backup:rsync服務器配置文件里的模塊名
--password-file=/etc/rsync.password:免密碼的操作,指定密碼文件位置,如果不寫,則會要求用戶交互式輸入密碼。(如果想掛定時任務,必須得非交互式)
2)將服務器端的指定目錄下的內容推送到客戶端,同步
Rsync -avz rsync_backup@192.168.200.128::backup /data --password-file=/etc/rsync.password
3)將服務器端指定目錄下的全部內容排除某目錄或文件后,同步到客戶端
rsync -avz --exclude=a --exclude=chen/3 --exclude=chen/4 rsync_backup@192.168.197.129::backup /backup/ --password-file=/etc/rsync.password
4)讓客戶端的指定目錄內容始終和rsync服務端始終保持一致
Rsync -avz --delete rsync_backup@192.168.197.129::backup /backup/ --password-file=/etc/rsync.password
Rsync 優點和缺點
1)增量備份,支持socket進程(daemon),集中備份
2)遠程SHELL通道模式還可以加密(ssh)傳輸
3)大量小文件同步的時候,比對時間較長,有時候在同步過程中,rsync進程可能會停止僵死了
4)同步大文件,10G以上的有時會出現問題,(中斷)
5)一次性拷貝可以使用scp,大量小文件打成一個包在拷貝
1.9.1 Rsync服務端排錯思路
查看rsync服務配置文件路徑是否正確,正確的默認路徑為:/etc/rsyncd.conf
查看配置文件里host allow,host deny,允許的IP網段是否是允許客戶端訪問的ip網段
查看配置文件中path參數里的路徑是否存在,權限是否正確(正常應為配置文件中的UID參數對應的屬主和組)
查看rsync服務是否啟動。查看命令為:ps -ef|grep rsync。端口是否存在netstat -antup |grep 873
查看iptables防火牆和selinux是否開啟允許rsync服務通過,也可以考慮關閉。
查看服務端rsync配置的密碼文件是否為600的權限,密碼文件格式是否正確,正確格式為:用戶名:密碼,文件路徑和配置文件里的secrect files參數對應。
如果是推送數據,要查看下,配置rsyncd.conf文件中用戶是否對模塊下目錄有可讀寫的權限。
1.9.2 Rsync客戶端排錯思路
查看客戶端rsync配置的密碼文件是否600的權限,密碼文件格式是否正確,注意:僅需要有密碼,並且和服務器端的密碼保持一致。
用telnet連接rsync服務器ip地址873端口,查看服務是否啟動(可測試服務端防火牆是否阻擋)telnet 192.168.197.129 873
客戶端執行命令時:rsync -avzP rsync_backup@192.168.197.129::backup /backup/ --password-file=/etc/rsync.password
此命令的細節要記清楚,尤其192.168.197.129::backup 處的雙冒號及其后的backup為模塊名稱
