本文實例講述了CentOS6.5環(huán)境下使用rsync增量同步備份文件的方法。分享給大家供大家參考,具體如下:
rsync是linux下一款文件同步工具,介紹如下: Rsync是一個遠程數(shù)據(jù)同步工具,可通過LAN/WAN快速同步多臺主機間的文件。Rsync本來是用以取代rcp的一個工具,它當前由 rsync.samba.org維護。Rsync使用所謂的“Rsync演算法”來使本地和遠程兩個主機之間的文件達到同步,這個算法只傳送兩個文件的不同部分,而不是每次都整份傳送,因此速度相當快。運行Rsync server的機器也叫backup server,一個Rsync server可同時備份多個client的數(shù)據(jù);也可以多個Rsync server備份一個client的數(shù)據(jù)。 Rsync可以搭配rsh或ssh甚至使用daemon模式。Rsync server會打開一個873的服務(wù)通道(port),等待對方Rsync連接。連接時,Rsync server會檢查口令是否相符,若通過口令查核,則可以開始進行文件傳輸。第一次連通完成時,會把整份文件傳輸一次,下一次就只傳送二個文件之間不同的部份。 Rsync支持大多數(shù)的類Unix系統(tǒng),無論是Linux、Solaris還是BSD上都經(jīng)過了良好的測試。此外,它在windows平臺下也有相應(yīng)的版本,比較知名的有cwRsync和Sync2NAS。
Rsync的基本特點如下:
1.可以鏡像保存整個目錄樹和文件系統(tǒng);
2.可以很容易做到保持原來文件的權(quán)限、時間、軟硬鏈接等;
3.無須特殊權(quán)限即可安裝;
4.優(yōu)化的流程,文件傳輸效率高;
5.可以使用rcp、ssh等方式來傳輸文件,當然也可以通過直接的socket連接;
6.支持匿名傳輸。
在linux上,如果我們想要遠程拷貝文件,我么可以使用scp命令,scp也是一個非常簡單輕巧的命令,那么今天又與散仙所說rsync有什么區(qū)別呢? 其實主要的區(qū)別在文章標題上就體現(xiàn)出來了,rsync的同步僅僅對增量的文件會實現(xiàn)拷貝備份,不會對已有的沒有改變的文件做備份,什么意思呢?
散仙舉例子如下: A服務(wù)器上,有個a文件夾里面有個a.txt文件,第一次我們在B服務(wù)器上對A服務(wù)器上的a文件夾執(zhí)行備份,那么會把a.txt文件拷貝到B服務(wù)器上的某個文件夾下,現(xiàn)在我們把A服務(wù)器上的a文件夾下新增一個b.txt,再次執(zhí)行同步,就會發(fā)現(xiàn)這次僅僅同步了b文件,原來的a文件沒有變化,如果我們改變了A服務(wù)上的a或b文件的內(nèi)容,那么再次同步時,就會把發(fā)生的改變的文件,也給同步過來,這就是與scp最大的不同,因為scp沒有這個功能。 如果沒有rsync組件,可以先執(zhí)行yum install rsync命令進行安裝,散仙所用的rsync命令,無須配置任何conf文件,只需要用命令行就可以了,非常簡潔。
測試機器IP如下:
序號 | IP地址 | 簡稱 |
1 | 192.168.46.32 | A機器 |
2 | 192.168.46.11 | B機器 |
先看下A機器上,logs文件夾下的文件:
1
|
[root@h1 logs] # ll |
總用量 4
1
2
|
-rw-r--r-- 1 root root 3 8月 30 02:29 a.txt [root@h1 logs] # |
然后,我們在B機器上,執(zhí)行同步命令如下:
1
|
[root@h2 logs] # ll |
總用量 0
1
2
3
4
|
[root@h2 logs] # rsync -av --delete 192.168.46.32:/root/logs /root/logg/ receiving incremental file list logs/ logs /a .txt |
1
2
3
|
sent 34 bytes received 107 bytes 282.00 bytes /sec total size is 3 speedup is 0.02 [root@h2 logs] # ll |
總用量 4
1
2
|
-rw-r--r-- 1 root root 3 8月 30 02:29 a.txt [root@h2 logs] # |
然后,我們在A機器上的log文件下,新增一個b.txt,再測試同步命令:
1
2
3
4
5
6
7
|
[root@h2 logs] # rsync -av --delete 192.168.46.32:/root/logs /root/logg/ receiving incremental file list logs/ logs /b .txt sent 34 bytes received 125 bytes 318.00 bytes /sec total size is 5 speedup is 0.03 [root@h2 logs] # |
通過日志,我們發(fā)現(xiàn)如果新增一個使用rsync僅僅同步了新增的文件: 現(xiàn)在我們在A服務(wù)器上的log文件夾下的a.txt里面新增一行內(nèi)容,再次執(zhí)行同步命令:
1
2
3
4
5
6
|
[root@h2 logs] # rsync -av --delete 192.168.46.32:/root/logs /root/logg/ receiving incremental file list logs /a .txt sent 37 bytes received 128 bytes 330.00 bytes /sec total size is 9 speedup is 0.05 [root@h2 logs] # |
我們發(fā)現(xiàn)rsync命令也能很好的識別出來 最后我們在來看下,同時改動,A服務(wù)器上的a和 b文件,一個新增一行,一個刪除一行,來測下增量:
1
2
3
4
5
6
7
8
|
[root@h2 logs] # rsync -av --delete 192.168.46.32:/root/logs /root/logg/ receiving incremental file list logs/ logs /a .txt logs /b .txt sent 65 bytes received 174 bytes 478.00 bytes /sec total size is 10 speedup is 0.04 [root@h2 logs] # |
我們發(fā)現(xiàn)rsync也能很好的識別出來。 最后,我們在來看下,如何在B服務(wù)器上向A服務(wù)器上發(fā)送數(shù)據(jù),注意,散仙剛在上面的演示,是從B服務(wù)器上下載A服務(wù)器上的數(shù)據(jù),現(xiàn)在我們要演示的是如何在B服務(wù)上主動發(fā)送數(shù)據(jù)到A服務(wù)器上,原理一樣,都是以增量的方式的操作的,只不過寫IP的方式,變換了一下位置:
1
2
3
4
5
6
|
[root@h2 logs] # rsync -av --delete /root/logg/logs/b.txt 192.168.46.32:/root/ sending incremental file list b.txt sent 87 bytes received 37 bytes 248.00 bytes /sec total size is 10 speedup is 0.08 [root@h2 logs] # |
希望本文所述對大家CentOS服務(wù)器維護有所幫助。