如何使用 rsync 命令在本地和通過 SSH 複製數據

將文件從一個位置複製到另一個位置是一項非常基本的任務,可以使用 cp 命令輕鬆實現。 但是,有時,您必須多做一點。 這是 rsync 命令的用武之地,尤其是在您傳輸較大文件時。 Rsync(遠程同步)是一個基於 Linux 的命令行工具,可用於在本地和遠程服務器之間同步和復製文件。 它允許在同一台計算機上的兩個目錄之間、同一網絡上兩台不同計算機的目錄之間、遠程系統上的兩個目錄之間同步文件。

rsync 的主要優點是它不是盲目地複制整個內容,而是僅分析和傳輸源和目標之間的差異,從而可能節省系統資源和帶寬。 rsync 的其他一些優點如下:

  • 傳輸前壓縮文件
  • 傳輸數據時可以查看進度條
  • 複製過程可以暫停並稍後恢復
  • 允許通過 SSH 連接傳輸

在本文中,我們將解釋如何在 Linux 中使用 rsync 複製數據。 我們將使用 Debian 10 來描述本文中提到的過程。

Rsync 的安裝

默認情況下,大多數 Linux 操作系統都安裝了 Rsync。 但是,如果未安裝,則可以按照以下步驟進行安裝:

進入系統中的終端應用程序 活動 Debian 桌面左上角的選項卡。 然後在搜索欄中輸入 終端. 當終端圖標出現時,單擊它以啟動它。

現在在終端中執行以下命令來安裝 rsync 實用程序:

$ apt 安裝 rsync

使用 Rsync

每個 rsync 命令都以 同步 後跟一個選項,您可以在其中指定各種參數。 Rsync 提供了許多選項,讓您可以控制來塑造傳輸規範。 然後有一個源和目標取決於它們是遠程機器還是本地機器。

rsync 的基本語法是:

$ rsync [option] [source] [destination]

與 rsync 命令一起使用的一些常規選項:

  1. -v : 冗長
  2. -一個 : 歸檔模式,它允許遞歸複製文件並保留符號鏈接、文件權限、用戶和組所有權和時間戳
  3. -和 : 壓縮數據
  4. -H : 人類可讀的,它以人類可讀的格式輸出數字
  5. –最大尺寸=SIZE,以指定的最小 SIZE 傳輸文件
  6. –最小尺寸=SIZE,傳輸指定最大SIZE的文件

現在我們將解釋一些使用 rsync 和這些選項的示例。

將文件和目錄複製到本地服務器

本地複製文件

您可以將單個或多個文件從源目錄複製到同一台機器上的目標目錄。 這 example 將復制所有 .jpg 文件來自 ~/下載 目錄到 〜/文件 目錄使用以下命令:

$ rsync -zvh /home/tin/Downloads/*.jpg /home/tin/Documents

運行上述命令後,所有 .jpg 源目錄中的文件 /home/tin/下載 將被複製到目標目錄 /家/錫/文件.

在上面 example,我們使用了類似的選項 -和 用於壓縮, -v 對於詳細輸出和 -H 用於人類可讀的輸出。

本地複制目錄

與文件類似,您也可以使用 rsync 命令複製整個文件夾和目錄中包含的文件。 一個 example 將是從復制所有文件 ~/下載 目錄到 〜/文件 目錄使用以下命令:

$ rsync -zavh /home/tin/Downloads/ /home/tin/Documents

將文件複製到遠程服務器

您可以將單個或多個文件從源目錄複製到遠程計算機上的目標目錄。 例如,要將文件從本地複製到遠程計算機,請使用以下命令語法:

$ rsync [options] [local path] [user]@[remote server]:[remote path]

根據最大大小複製文件

您還可以指定可以使用 rsync 從源複製到目標的文件的最大大小。 為此,請使用以下命令語法:

$ rsync –max-size=”” [source] [destination]

一個 example 將是從源複製最大大小為 4000K 的文件 ~/下載 到目的地 〜/文件 目錄。 在這種情況下,大於 4000k 的文件將不會被複製到目的地。

$ rsync –max-size=4000k /home/tin/Downloads/*.iso /home/tin/Documents/

使用 rsync 複製文件時限製文件大小

根據最小大小複製文件

同樣,您還可以指定可以使用 rsync 從源複製到目標的最小大小。 為此,請使用以下命令語法:

$ rsync –min-size=”” [source] [destination]

一個 example 這將是從源複製最大大小為 2M 的文件 ~/下載 到目的地 〜/文件 目錄。 大小小於 2M 的文件將不會使用 rsync 進行複制。

$ rsync –min-size=2M /home/tin/Downloads/*.iso /home/tin/Documents/

根據最小大小複製文件

查看進度

您還可以在使用 rsync 複製文件時查看進度。 添加 -進步 rsync 命令後面的標誌,如下所示:

$ rsync –progress [source] [destination]

一個 example 將是在從源複製文件時查看進度 ~/下載 到目的地 〜/文件 目錄:

$ rsync –progress /home/tin/Downloads/VTS_03_1.VOB /home/tin/Documents

在 rsync 中查看複製進度

排除文件

您還可以在使用 rsync 將文件從源複製到目標時排除某些文件。 一個 example 從源複製文件時將排除所有 .pdf 文件 ~/下載 到目的地 〜/文件 目錄。

rsync -zavh –exclude=”*.pdf” /home/tin/Downloads/ /home/tin/Documents

排除文件被 rsync 複製

通過輸入以下命令,所有文件都將從源複製到目標,除了 .pdf 文件。

這就是全部! 我們已經解釋了 rsync 實用程序在本地和遠程不同目錄之間複製文件的基本用法。 我們還解釋了一些常見且有用的 rync 選項。 除了這些之外,還有很多選項可以用來控制傳輸行為的各個方面。 要使用這些選項,請參閱 rsync 手冊頁。