linux rsync 原理,rsync 同步原理和类别
前言
在電腦裡,我們可能存放了工作上的資料或是生活上的回憶。這些資料對我們來說,都是極為重要的。因此,需要有效的方法來保護這些資料,避免資料損毀,造成損失與遺憾。
為了保護資料的完整性,可以採用硬體或是軟體的方式來保護資料。以硬體為例,可以利用RAID的方式,來達成相當程度的保護;或是軟體的方式,將資料備份到現有的空間,碰到資料損壞的時候,還有備份的資料可以使用。
院內的使用者除了資料備份的議題外,還會面臨一個問題,個人電腦中與遠端主機的資料同步問題。以HPC使用者為例,常需要讓資料在個人電腦與HPC服務的主機之間來回。長久下來,可能會使得個人電腦與HPC主機中的資料不同步,難以進行資料的管理。
今天要介紹的rsync,可以以低成本的方式,解決資料備份與同步的問題。
rsync介紹
介紹rsync之前,先介紹兩個備份相關名詞:
鏡像備份(mirror backup):如同照鏡子一樣,把資料完整的做一份備份。
增量備份(incremental backup):只備份從上次備份後,資料有異動的部份。
rsync在符合GNU
GPL的使用下,是完全免費的;目前最新的版本是3.0.6版。rsync可以用來複製資料、備份資料以及同步資料。
rsync的工作原理
rsync為了快速地完成備份工作,在開始傳輸檔案之前,會先比較兩端的檔案,找出資料有異動的部份,將這些異動的部份傳輸到目的端,完成備份工作。正因為rsync只將資料有異動的部份傳輸到目的端,因此可以用來同步兩端的資料。
rsync的優點
可以進行增量備份,不怕備份中斷,節省備份時間。
傳輸過程中,可以利用ssh將資料加密。
open source的軟體,可以跨平台使用。
rsync的缺點
遇到檔案數或目錄層數多的時候,效率較差。檔案數達到一定的數量,rsync可能無法執行。
使用時要小心,避免覆蓋到想要保留的資料。
rsync的運作模式
rsync的運作模式有如下三種:
在本機上運作。
透過rsh或ssh的方式傳輸資料。
透過daemon的方式傳輸資料。
實際使用時,本機與遠端機器均要安裝rsync。前兩種運作模式,安裝rsync之後,不需要做任何設定,就能在來源端用rsync將資料備份到目的端;第三種運作模式要有目的端root的權限,對rsync相關檔案進行設定之後,並啟動rsync
daemon,才可以從來源端執行rsync將資料備份到目的端。
關於rsync daemon的設定,請詳參考資料。以下就列舉幾種rsync的使用案例,說明rsync的使用方式。
使用案例說明
◎使用【案例1】在本機上備份或同步專案目錄
假設我們有個專案正在進行,希望可以將專案資料帶到其他電腦上繼續使用。此時,就可以將辦公室電腦中的專案目錄,以rsync備份到隨身碟中,將專案資料帶到其他電腦上使用,方式如下:
1. src_dir 為專案目錄,dest_dir為隨身碟,內容如【圖1】所示
圖1
2.由於隨身碟中並沒有任何關於專案目錄的資料,因此我們使用指令"rsync -av 來源端目錄
目的端目錄"進行完整備份,將專案目錄的資料備份到隨身碟中,如【圖2】所示。
圖2
3. 利用sum指令比較兩個目錄的檔案是否有差異,比較結果如【圖3】所示,兩個目錄中的資料內容完全相同。
圖3
◎使用【案例2】將隨身碟中修改過的專案資料,同步回辦公室電腦中的專案目錄
在【案例1】中,我們將資料備份到隨身碟中,帶到其他的電腦上使用。現在要將變動過的資料,同步回辦公室電腦,步驟為:
1.同步前,辦公室電腦的資料內容及隨身碟中的資料內容比較,如【圖4】所示,少了一個檔案,還有一個檔案兩邊不同。
圖4
2.利用指令"rsync -av --delete 來源端目錄
目的端目錄"同步資料,如【圖5】所示,更新了一個檔案,因為使用了--delete參數,rsync刪除了一個檔案。
圖5
3.完成同步後,比較兩個目錄的檔案是否有差異,比較結果如【圖6】所示,兩個目錄中的資料內容完全相同。
圖6
◎使用【案例3】透過ssh將本機資料備份到遠端主機
院內同仁如果有大量的資料需要從遠端主機帶回個人電腦中使用,可以用rsync透過ssh把資料備份或同步到個人電腦中,只要遠端主機有安裝rsync,不需要特別的設定,就可以使用,作法如下:
1.備份前,遠端主機的資料內容如【圖7】所示。
圖7
2.在本機上使用指令"rsync -av -e ssh 遠端主機名稱:/路徑
目的端目錄"將遠端主機的資料,帶回個人電腦中使用。執行結果如【圖8】所示,並比對兩邊檔案的內容(【圖7】、【圖8】),確認完整地將遠端主機的資料都帶回個人電腦。
圖8
◎使用【案例4】將個人電腦中的資料,透過ssh同步回遠端主機中存放或使用。
對部份同仁而言,可能在主機上放存放了很多的資料,這些資料需要與本機的資料同步以便管理,像是網頁資料或是科學計算的資料,其程序為:
1.備份前,本機資料的內容如【圖9】所示。
圖9
2.在本機上使用指令"rsync -av --delete -e ssh 來源端目錄
遠端主機名稱:/路徑"將資料同步到遠端主機中,執行結果如【圖10】所示。
圖10
3.比較本機資料與遠端主機資料的差異,如【圖9】、【圖11】所示,兩邊資料相同。
圖11
◎使用【案例5】將本機資料備份到rsync備份主機存放
除了透過ssh或rsh的方式將資料備份到遠端主機存放外,遠端主機還可以將rsync以服務的模式啟動,接受資料備份的要求(關於rsync以服務啟動的設定,請詳參考資料)。以下假設rsync備份主機已設定完成,並提供備份時所需要的帳號、密碼及模組名稱,備份程序如下:
1.備份前,本機資料如【圖12】所示。rsync備份主機提供了一組帳號、密碼及模組名稱以便我們進行本機資料備份。利用指令"rsync
-av 來源端目錄
帳號名稱@遠端主機名稱::模組名稱"將資料備份到rsync備份主機上存放;備份過程如【圖12】所示。
圖12
2.檢查rsync備份主機上的資料內容,如【圖13】所示,其結果與本機資料的內容(【圖12】)一致。
圖13
上述將資料備份到rsync備份主機的過程中,需要手動輸入密碼;如果需要自動備份,請加入--passwoed-file參數,指定密碼檔,例如rsync
-av
--password-file=/root/rsync.pwd,讓rsync去讀取指定的密碼檔,以便進行自動備份。要注意的是,rsync要求密碼檔的權限設定必須為檔案擁有者唯讀,其他人沒有任何存取權限,以保障密碼檔的安全。如此,rsync才能正常的完成指定的備份工作。
◎使用【案例6】使用rsync備份主機的資料,進行資料救援
平時如果有將資料備份到rsync備份主機上存放,一旦發生資料遺失或損毀,就可以透過rsync將備份資料取回,完成資料救援,方式為:
1.承使用【案例5】,我們故意將本機資料中的兩個檔案更名,模擬資料遺失狀況,接著用指令"rsync -av
rsync://帳號名稱@遠端主機名稱/模組名稱/路徑
目的端目錄"取回rsync備份主機上的資料。將取回的資料比對原本的資料,確認兩者內容一致,如【圖14】所示。
圖14
結語
使用rsync,要注意下列幾種狀況,避免資料被刪除或覆蓋:
確認資料要備份或同步的目的地,避免覆蓋來源端的資料。
同步資料時,請謹慎使用--delete參數,避免資料被刪除。
自動執行備份或同步時,請務必確認要備份的檔案系統存在;如果要備份的檔案系統不在,可能會誤將已備份的資料都刪除。
如果目錄或檔案數量過多,可能無法執行rsync備份。
本文以上列舉了常見的rsync使用案例,這些使用案例包含了備份及資料取回的程序,供讀者參考。利用rsync只更新異動資料的特性,除了可以減少備份時間,讓備份工作變得更容易進行外,即使備份失敗,也只需要再執行一次備份程序,將未備份的資料進行備份即可,可謂相當簡易而方便。
參考資料
linux rsync 原理,rsync 同步原理和类别相关推荐
- linux学习笔记-rsync原理及使用
rsync的原理及使用 第1章 rsync原理及介绍 1.1什么是rsync Rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具.Rstync软件适用于uni ...
- linux rsync 原理,rsync压缩及其工作原理
我使用rsync通过WebDav将大量文件(在Ubuntu Linux服务器上)备份到云网络服务.由于我的网络速度是我的瓶颈因素,我以为我会使用rsync -z(压缩)来减小文件大小,希望这可以减少瓶 ...
- Linux Rsync实现文件同步备份(转载)
原文地址:Linux Rsync实现文件同步备份作者:夷北 转自:http://www.mike.org.cn/blog/index.php?load=read&id=639###pp=0 [ ...
- linux 下的 rsync 文件同步
rsync是linux下的一款快速增量备份工具Remote Sync,是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限.时间.软硬链接等附加信息.rsync是用 "r ...
- Linux下利用rsync实现多服务器文件同步
Linux下利用rsync实现多服务器文件同步 目标:多服务器文件同步 环境:2台centos5.6 Web端:192.168.20.20 Backup端:192.168.20.21 需要备份目录为: ...
- rsync通过服务同步、linux系统日志、screen工具
rsync通过服务同步 /etc/rsyncd.conf是rsync的默认配置文件,该配置文件不存在,需要编辑内容 主服务器上的操作: 1.[root@test rsync]# cat /etc/rs ...
- linux开机启动rsync,【Linux】rsync同步文件 程序自启动
rsync使用 1. 为什么使用rsync? rsync解决linux系统下文件同步时, 增量同步问题. 使用场景: 线上需要定时备份数据文件(视频资源), 使用rsync完成每天的增量备份. 2. ...
- Linux CentOS7 rsync通过服务同步、linux系统日志、screen工具
一.rsync通过服务同步 rsyncd.conf配置文件详解 port:指定在哪个端口启动rsyncd服务,默认是873端口. log file:指定日志文件. pid file:指定pid文件,这 ...
- 三十六、rsync通过服务同步、Linux系统日志、screen工具
三十六.rsync通过服务同步.Linux系统日志.screen工具 一.rsync通过服务同步 该方式可以理解为:在远程主机上建立一个rsync的服务器,在服务器上配置好各种应用,然后本机将作为客户 ...
最新文章
- 李开复对话李飞飞:AI要理解人类的情感,还早着呢
- java 判断一个字符串是否为纯数字
- mysql数据库备份出错_mysql数据库备份成功,再还原却失败,什么原
- brand.php dnfire.cn_能美火灾报警_能美西科姆消防报警主机如何屏蔽故障点_滁州气象...
- console对象及js函数
- http://www.jianshu.com/p/42e11515c10f#
- eclipse使用不需要配置jdk的环境变量
- linux--私钥登陆
- linux下C语言获取微秒级时间
- Unity下载package到本地,Unity高版本如何安装Packager到本地,UnityPackageManager下载包到本地的保存路径
- 软件测试工程师在不同阶段需要掌握的技能
- 自助取号机应用-排队叫号机优势介绍
- 全志8916平台MIPI_LCD调试方法
- verilog 四舍五入_IEEE 754 round-to-nearest-even Verilog代码
- Android的热修复技术--阿里的hotfix试用
- 初学JAVA GUI
- hadoop更换硬盘
- 同程艺龙通过港交所上市聆讯 要冲刺小程序第一股
- gnuplot:散点图
- 第三方软件产品采购分享