fbpx
维基百科

rsync

rsyncUnix下的一款应用软件,它能同步更新两处计算机的檔案目錄,並適當利用差分編碼以減少数据傳輸量。rsync中的一項同类软件不常见的重要特性是每個目標的镜像只需傳送一次。rsync可以拷貝/顯示目錄內容,以及拷貝檔案,並可選壓縮以及遞歸拷貝。

rsync
原作者安德魯·垂鳩(Andrew Tridgell)與保羅·麥可拉斯(Paul Mackerras)
開發者韋恩·大衛森(Wayne Davison)
首次发布1996年6月19日,​26年前​(1996-06-19[1]
目前版本
  • 3.2.7 (2022年10月20日;穩定版本)[2]
源代码库
  • github.com/WayneD/rsync/
编程语言C
系統平台跨平臺
类型数据传输差分備份英语Differential backup
许可协议GNU GPLv3
网站rsync.samba.org

在常駐模式(daemon mode)下,rsync預設監聽TCP873,以原生rsync傳輸協定或者透過遠端shellRSH或者SSH提供檔案。SSH模式下,rsync用戶端執行程式必須同時在本地和遠端機器上安裝。

rsync是以GNU通用公共许可证發行的自由软件

演算法

确定要发送哪些文件

默认情况下,rsync通过检查每个文件的修改时间和大小来确定哪些文件在发送和接收系统之间存在差异。如果时间或大小在两个系统之间不同,它就把文件从发送系统转移到接收系统。由于只需要读取文件目录信息,这个过程很快,但会错过某些罕见的修改,碰巧这两者都没有改变。[3]

如果用--checksum调用,Rsync会执行一个较慢但全面的检查。这将强制对两个系统上的每个文件进行全面的校验和比较。除了罕见的校验和碰撞之外,可以避免遗漏已更改文件的风险。

确定文件的哪些部分有改变

rsync实用程序使用由澳洲電腦程式師安德魯·垂鳩(Andrew Tridgell)發明的演算法,在當接受端電腦已經有相同結構(例如檔案)但不同版本時,有效的將結構傳輸過通訊連線。在他1999年的博士论文《Efficient Algorithms for Sorting and Synchronization》[4]中,详细介绍了rsync的设计、实现与性能。

接受端將檔案拷貝打散成固定大小為 的不重疊片段,並對每個片段計算兩個校验和MD4散列函數與一個較弱的旋转哈希。它將這些校验和送給發送者。通訊協議版本30(與rsync版本3.0.0一並發行)現在使用MD5散列函數以替代MD4。[5]

發送者對位於其版本的檔案中每個大小為 的片段計算輪替校验和,即使是重疊的片段。這可被有效的計算透過特別知識產權的輪替校验和算法:如果位元  的輪替校验和是 ,從位元  的輪替校验和可從 ,位元 ,以及位元 計算出而不需要真正去檢驗中間的位元。因此,如果位元1到25的輪替校验和已被算出,那計算位元2到26的輪替校验和可完全依靠之前的校验和與位元1與位元26算出。

rsync使用的旋转哈希来自于馬克艾德勒(Mark Adler)的adler-32校验和算法。該算法也被用於zlib,而它本身也基於Fletcher校验英语Fletcher's checksum算法。

發送者其後以接收者送來的一組輪替校验和比較它自己的輪替校验和以決定是否任何匹配存在。如果是的話,它便透過計算匹配區塊的MD4校验和與接受端送來的MD4校验和比較來驗證匹配。

發送者稍後傳送給接收者不與接收者方任何區塊匹配的檔案的那些部分,以及如何合併這些區塊到接收者版本的組裝指令。在實際上,這產生了與發送者端檔案一模一樣的拷貝。然而,在原則上是可能接收者的拷貝在這一點上不同:這可能發生在當兩個檔案有不同的區塊但有著相同的MD4散列函數與輪替校验和;這種事情發生的機率在現實上極端罕見。

如果發送者與接收者檔案版本有許多區段相同,該公用程式只需傳送相對小部分的資料以將檔案同步。

在rsync演算法構成rsync應用程式核心並最佳化兩台電腦間TCP/IP的傳輸同時,rsync應用程式也支援其他種顯著增進檔案傳輸或備份的重要功能。他們包括在發送端與接收端個別利用zlib進行區塊區塊間壓縮解壓縮,以及支援通訊協定如ssh。該協定讓加密傳輸兼具壓縮與效率,透過rsync演算法產生的差分資料變得可能。除ssh以外,stunnel亦可被利用於創造加密通道以保全被傳輸的資料。

使用

  • rsync -avh source destination

rsync的撰寫是用来取代rcp與SCP[6]。rsync最早期程式的其中之一是用來實現透過rsync/ssh與標準Unix帳號,從多重Unix客戶端鏡像或者備份到中央Unix伺服器。與如Cron類似的排程應用程式配合,任何人皆可排程介於多台電腦與中央伺服器間自動加密過、基於rsync的鏡像備份。

變種

一個叫做rdiff的公用程式利用rsync的演算法產生檔案A與檔案B間不同的差分檔案(與公用程式diff類似,不過不同的差分檔案格式)。差分檔案可稍後被套用到檔案A,轉成檔案B(類似patch公用程式)。

不像diff,產生差分檔案的過程有兩步:首先產生檔案A的簽名檔,然後這個(相對較小)的簽名檔與檔案B被用來產生差分檔。又與diff相異的是,rdiff可適用於二進位檔案

利用rdiff,自由軟體作者們寫了一個叫做rdiff-backup的公用程式,它可以跨過網路維護位於另一台伺服器某個檔案或者目錄的備份鏡像。rdiff-backup儲存備份以及遞增的rdiff差分檔。這種方式讓回溯到任何備份點成為可能。

duplicity是rdiff-backup的一個變種,它利用單一儲存服務(像Amazon S3)達成不需要與儲存伺服器合作的備份。它透過產生預先產生每個區塊的散列函數,將它們加密,並送到伺服器儲存,然後當進行遞增備份時取回。剩下的資料為滿足保全需求也被加密儲存。

歷史

rsync首度發布於1996年6月19日。原始作者為安德魯·垂鳩(Andrew Tridgell)與保羅·麥可拉斯(Paul Mackerras)。[7]

rsync 3.0於2008年3月1日發行。[8]

參見

  • casync英语casync
  • Remote Differential Compression英语Remote Differential Compression
  • TCP/UDP端口列表
  • CVSup
  • Unison (file synchronizer)英语Unison (file synchronizer)
  • PowerFolder
  • Jigdo
  • Grsync
  • cwRsync

參考資料

  1. ^ Tridgell, Andrew. First release of rsync - rcp replacement. Newsgroup: comp.os.linux.announce. 19 June 1996 [2007-07-19]. Usenet: cola-liw-835153950-21793-0@liw.clinet.fi. (原始内容于2011-11-08). 
  2. ^ NEWS for rsync 3.2.7. 
  3. ^ rsync(1) - Linux man page. [2022-08-06]. (原始内容于2017-01-01). 
  4. ^ Tridgell, Andrew; Efficient Algorithms for Sorting and Synchronization, February 1999, retrieved 29 September 2009
  5. ^ 存档副本. [2008-10-24]. (原始内容于2008-03-20). 
  6. ^ 如在README (页面存档备份,存于互联网档案馆)所述
  7. ^ Tridgell, Andrew. First release of rsync - rcp replacement. Newsgroup: comp.os.linux.announce. 1996年6月19日 [2007-07-19]. <cola-liw-835153950-21793-0@liw.clinet.fi>#1/1. (原始内容于2011-11-08). 
  8. ^ Davison, Wayne. Rsync 3.0.0 released. rsync-announce (邮件列表). 2008年3月1日 [2008年10月24日]. (原始内容于2009年8月15日). 

外部連結

rsync, 是unix下的一款应用软件, 它能同步更新两处计算机的檔案與目錄, 並適當利用差分編碼以減少数据傳輸量, 中的一項同类软件不常见的重要特性是每個目標的镜像只需傳送一次, 可以拷貝, 顯示目錄內容, 以及拷貝檔案, 並可選壓縮以及遞歸拷貝, 原作者安德魯, 垂鳩, andrew, tridgell, 與保羅, 麥可拉斯, paul, mackerras, 開發者韋恩, 大衛森, wayne, davison, 首次发布1996年6月19日, 26年前, 1996, 目前版本3, 2022年10月20日,. rsync是Unix下的一款应用软件 它能同步更新两处计算机的檔案與目錄 並適當利用差分編碼以減少数据傳輸量 rsync中的一項同类软件不常见的重要特性是每個目標的镜像只需傳送一次 rsync可以拷貝 顯示目錄內容 以及拷貝檔案 並可選壓縮以及遞歸拷貝 rsync原作者安德魯 垂鳩 Andrew Tridgell 與保羅 麥可拉斯 Paul Mackerras 開發者韋恩 大衛森 Wayne Davison 首次发布1996年6月19日 26年前 1996 06 19 1 目前版本3 2 7 2022年10月20日 穩定版本 2 源代码库github wbr com wbr WayneD wbr rsync wbr 编程语言C系統平台跨平臺类型数据传输 差分備份 英语 Differential backup 许可协议GNU GPLv3网站rsync wbr samba wbr org在常駐模式 daemon mode 下 rsync預設監聽TCP埠873 以原生rsync傳輸協定或者透過遠端shell如RSH或者SSH提供檔案 SSH模式下 rsync用戶端執行程式必須同時在本地和遠端機器上安裝 rsync是以GNU通用公共许可证發行的自由软件 目录 1 演算法 1 1 确定要发送哪些文件 1 2 确定文件的哪些部分有改变 2 使用 3 變種 4 歷史 5 參見 6 參考資料 7 外部連結演算法 编辑确定要发送哪些文件 编辑 默认情况下 rsync通过检查每个文件的修改时间和大小来确定哪些文件在发送和接收系统之间存在差异 如果时间或大小在两个系统之间不同 它就把文件从发送系统转移到接收系统 由于只需要读取文件目录信息 这个过程很快 但会错过某些罕见的修改 碰巧这两者都没有改变 3 如果用 checksum调用 Rsync会执行一个较慢但全面的检查 这将强制对两个系统上的每个文件进行全面的校验和比较 除了罕见的校验和碰撞之外 可以避免遗漏已更改文件的风险 确定文件的哪些部分有改变 编辑 rsync实用程序使用由澳洲電腦程式師安德魯 垂鳩 Andrew Tridgell 發明的演算法 在當接受端電腦已經有相同結構 例如檔案 但不同版本時 有效的將結構傳輸過通訊連線 在他1999年的博士论文 Efficient Algorithms for Sorting and Synchronization 4 中 详细介绍了rsync的设计 实现与性能 接受端將檔案拷貝打散成固定大小為S displaystyle S 的不重疊片段 並對每個片段計算兩個校验和 MD4散列函數與一個較弱的旋转哈希 它將這些校验和送給發送者 通訊協議版本30 與rsync版本3 0 0一並發行 現在使用MD5散列函數以替代MD4 5 發送者對位於其版本的檔案中每個大小為S displaystyle S 的片段計算輪替校验和 即使是重疊的片段 這可被有效的計算透過特別知識產權的輪替校验和算法 如果位元n displaystyle n 到n S 1 displaystyle n S 1 的輪替校验和是R displaystyle R 從位元n 1 displaystyle n 1 到n S displaystyle n S 的輪替校验和可從R displaystyle R 位元n displaystyle n 以及位元n S displaystyle n S 計算出而不需要真正去檢驗中間的位元 因此 如果位元1到25的輪替校验和已被算出 那計算位元2到26的輪替校验和可完全依靠之前的校验和與位元1與位元26算出 rsync使用的旋转哈希来自于馬克艾德勒 Mark Adler 的adler 32校验和算法 該算法也被用於zlib 而它本身也基於Fletcher校验 英语 Fletcher s checksum 算法 發送者其後以接收者送來的一組輪替校验和比較它自己的輪替校验和以決定是否任何匹配存在 如果是的話 它便透過計算匹配區塊的MD4校验和與接受端送來的MD4校验和比較來驗證匹配 發送者稍後傳送給接收者不與接收者方任何區塊匹配的檔案的那些部分 以及如何合併這些區塊到接收者版本的組裝指令 在實際上 這產生了與發送者端檔案一模一樣的拷貝 然而 在原則上是可能接收者的拷貝在這一點上不同 這可能發生在當兩個檔案有不同的區塊但有著相同的MD4散列函數與輪替校验和 這種事情發生的機率在現實上極端罕見 如果發送者與接收者檔案版本有許多區段相同 該公用程式只需傳送相對小部分的資料以將檔案同步 在rsync演算法構成rsync應用程式核心並最佳化兩台電腦間TCP IP的傳輸同時 rsync應用程式也支援其他種顯著增進檔案傳輸或備份的重要功能 他們包括在發送端與接收端個別利用zlib進行區塊區塊間壓縮解壓縮 以及支援通訊協定如ssh 該協定讓加密傳輸兼具壓縮與效率 透過rsync演算法產生的差分資料變得可能 除ssh以外 stunnel亦可被利用於創造加密通道以保全被傳輸的資料 使用 编辑rsync avh source destinationrsync的撰寫是用来取代rcp與SCP 6 rsync最早期程式的其中之一是用來實現透過rsync ssh與標準Unix帳號 從多重Unix客戶端鏡像或者備份到中央Unix伺服器 與如Cron類似的排程應用程式配合 任何人皆可排程介於多台電腦與中央伺服器間自動加密過 基於rsync的鏡像備份 變種 编辑一個叫做rdiff的公用程式利用rsync的演算法產生檔案A與檔案B間不同的差分檔案 與公用程式diff類似 不過不同的差分檔案格式 差分檔案可稍後被套用到檔案A 轉成檔案B 類似patch公用程式 不像diff 產生差分檔案的過程有兩步 首先產生檔案A的簽名檔 然後這個 相對較小 的簽名檔與檔案B被用來產生差分檔 又與diff相異的是 rdiff可適用於二進位檔案 利用rdiff 自由軟體作者們寫了一個叫做rdiff backup的公用程式 它可以跨過網路維護位於另一台伺服器某個檔案或者目錄的備份鏡像 rdiff backup儲存備份以及遞增的rdiff差分檔 這種方式讓回溯到任何備份點成為可能 duplicity是rdiff backup的一個變種 它利用單一儲存服務 像Amazon S3 達成不需要與儲存伺服器合作的備份 它透過產生預先產生每個區塊的散列函數 將它們加密 並送到伺服器儲存 然後當進行遞增備份時取回 剩下的資料為滿足保全需求也被加密儲存 歷史 编辑rsync首度發布於1996年6月19日 原始作者為安德魯 垂鳩 Andrew Tridgell 與保羅 麥可拉斯 Paul Mackerras 7 rsync 3 0於2008年3月1日發行 8 參見 编辑 自由軟體主题 casync 英语 casync Remote Differential Compression 英语 Remote Differential Compression TCP UDP端口列表CVSup Unison file synchronizer 英语 Unison file synchronizer PowerFolder Jigdo Grsync cwRsync參考資料 编辑 Tridgell Andrew First release of rsync rcp replacement Newsgroup comp os linux announce 19 June 1996 2007 07 19 Usenet cola liw 835153950 21793 0 liw clinet fi 原始内容存档于2011 11 08 NEWS for rsync 3 2 7 rsync 1 Linux man page 2022 08 06 原始内容存档于2017 01 01 Tridgell Andrew Efficient Algorithms for Sorting and Synchronization February 1999 retrieved 29 September 2009 存档副本 2008 10 24 原始内容存档于2008 03 20 如在README 页面存档备份 存于互联网档案馆 所述 Tridgell Andrew First release of rsync rcp replacement Newsgroup comp os linux announce 1996年6月19日 2007 07 19 lt cola liw 835153950 21793 0 liw clinet fi gt 1 1 原始内容存档于2011 11 08 Davison Wayne Rsync 3 0 0 released rsync announce 邮件列表 2008年3月1日 2008年10月24日 原始内容存档于2009年8月15日 外部連結 编辑rsync官方網頁 页面存档备份 存于互联网档案馆 rsync演算法 页面存档备份 存于互联网档案馆 rsync教學 页面存档备份 存于互联网档案馆 一個簡單實際的rsync例子 易於自行照做的rsync教學 页面存档备份 存于互联网档案馆 在Windows下使用rsync 取自 https zh wikipedia org w index php title Rsync amp oldid 74188677, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。