前言

在電腦裡,我們可能存放了工作上的資料或是生活上的回憶。這些資料對我們來說,都是極為重要的。因此,需要有效的方法來保護這些資料,避免資料損毀,造成損失與遺憾。

為了保護資料的完整性,可以採用硬體或是軟體的方式來保護資料。以硬體為例,可以利用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 同步原理和类别相关推荐

  1. linux学习笔记-rsync原理及使用

    rsync的原理及使用 第1章 rsync原理及介绍 1.1什么是rsync Rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具.Rstync软件适用于uni ...

  2. linux rsync 原理,rsync压缩及其工作原理

    我使用rsync通过WebDav将大量文件(在Ubuntu Linux服务器上)备份到云网络服务.由于我的网络速度是我的瓶颈因素,我以为我会使用rsync -z(压缩)来减小文件大小,希望这可以减少瓶 ...

  3. Linux Rsync实现文件同步备份(转载)

    原文地址:Linux Rsync实现文件同步备份作者:夷北 转自:http://www.mike.org.cn/blog/index.php?load=read&id=639###pp=0 [ ...

  4. linux 下的 rsync 文件同步

    rsync是linux下的一款快速增量备份工具Remote Sync,是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限.时间.软硬链接等附加信息.rsync是用 "r ...

  5. Linux下利用rsync实现多服务器文件同步

    Linux下利用rsync实现多服务器文件同步 目标:多服务器文件同步 环境:2台centos5.6 Web端:192.168.20.20 Backup端:192.168.20.21 需要备份目录为: ...

  6. rsync通过服务同步、linux系统日志、screen工具

    rsync通过服务同步 /etc/rsyncd.conf是rsync的默认配置文件,该配置文件不存在,需要编辑内容 主服务器上的操作: 1.[root@test rsync]# cat /etc/rs ...

  7. linux开机启动rsync,【Linux】rsync同步文件 程序自启动

    rsync使用 1. 为什么使用rsync? rsync解决linux系统下文件同步时, 增量同步问题. 使用场景: 线上需要定时备份数据文件(视频资源), 使用rsync完成每天的增量备份. 2. ...

  8. Linux CentOS7 rsync通过服务同步、linux系统日志、screen工具

    一.rsync通过服务同步 rsyncd.conf配置文件详解 port:指定在哪个端口启动rsyncd服务,默认是873端口. log file:指定日志文件. pid file:指定pid文件,这 ...

  9. 三十六、rsync通过服务同步、Linux系统日志、screen工具

    三十六.rsync通过服务同步.Linux系统日志.screen工具 一.rsync通过服务同步 该方式可以理解为:在远程主机上建立一个rsync的服务器,在服务器上配置好各种应用,然后本机将作为客户 ...

最新文章

  1. 李开复对话李飞飞:AI要理解人类的情感,还早着呢
  2. java 判断一个字符串是否为纯数字
  3. mysql数据库备份出错_mysql数据库备份成功,再还原却失败,什么原
  4. brand.php dnfire.cn_能美火灾报警_能美西科姆消防报警主机如何屏蔽故障点_滁州气象...
  5. console对象及js函数
  6. http://www.jianshu.com/p/42e11515c10f#
  7. eclipse使用不需要配置jdk的环境变量
  8. linux--私钥登陆
  9. linux下C语言获取微秒级时间
  10. Unity下载package到本地,Unity高版本如何安装Packager到本地,UnityPackageManager下载包到本地的保存路径
  11. 软件测试工程师在不同阶段需要掌握的技能
  12. 自助取号机应用-排队叫号机优势介绍
  13. 全志8916平台MIPI_LCD调试方法
  14. verilog 四舍五入_IEEE 754 round-to-nearest-even Verilog代码
  15. Android的热修复技术--阿里的hotfix试用
  16. 初学JAVA GUI
  17. hadoop更换硬盘
  18. 同程艺龙通过港交所上市聆讯 要冲刺小程序第一股
  19. gnuplot:散点图
  20. 第三方软件产品采购分享

热门文章

  1. Model和ViewModel
  2. openfoam安装中出现allmake error_深入理解 OpenFOAM 环境与编译过程
  3. python:f/F,format,%的用法
  4. “团队禁止使用Lombok”,被我狠狠的反驳了!
  5. 回溯算法的题目,这样做,秒杀!!
  6. 设计模式——开发常用的设计模式梳理
  7. jQuery中 :first 和 :last 选择器诡异问题
  8. 大数据算法:对5亿数据进行排序
  9. Kafka生产者详解
  10. python中删除字典中的某个元素_python怎样删除字典中的元素