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