如何在 Debian 10 中備份文件和文件夾

在 IT 世界中,重要的是盡可能保留數據的副本,以便在發生磁盤故障或錯誤刪除時在需要時使用它。 因此,在一天結束時進行定期備份是負責任的計算機用戶的好習慣。

‘rsync’ 命令通常用於復制大數據。 但是,在本地機器上複製少量目錄和文件時也使用“cp”命令。

在本文中,我們將學習如何在 Debian 10 中備份文件和文件夾。

先決條件

您需要具備以下條件才能使本教程正常工作。

1.兩台具有root權限的Debian 10機器

使用 cp 命令備份目錄

我們要討論的第一個命令是“cp”。 它用於在本地機器上複製少量文件和文件夾。 因此,它實際上不用於工業中。

‘cp’ 命令的語法如下。

cp -option1 -option2 源目的地

為了便於理解,我們將把文件從 Desktop/log 複製到 Karim/logrot。 在終端上運行以下命令。

cp -avr 桌面/日誌 Karim/logro

a:用於保存目錄屬性,如文件模式、所有權、時間戳等。

r:用於遞歸複製主目錄下的目錄

v:用於詳細輸出

以下是示例輸出。

如果要將所有文件、目錄和子目錄複製到另一個目錄,可以使用 * 通配符。 例如,以下命令會將現有目錄 Desktop/log/ 中的所有數據複製到 Karim/logro/。

cp -avr Desktop/log/* Karim/logro/

以下是示例輸出。

使用 rysnc 備份目錄

正如我們已經說過的,備份文件和文件夾最廣泛使用的命令是“rsync”。 因此,讓我們討論它是什麼以及如何使用它。

什麼是rysnc?

Rsync 代表遠程同步,由 Andrew Tridgell 和 Paul Mackerras 於 1996 年 6 月 19 日編寫。它是本地和網絡機器之間文件同步和傳輸的有效命令。 它在大多數係統上默認可用。 但是,如果它不可用,您可以藉助以下簡單命令進行安裝(以 root 權限運行命令)。

apt-get 更新 apt-get 安裝 rsync

在同步數據之前,您還需要在兩台網絡機器上安裝 ssh 客戶端和服務器。 在兩台 Debian 1o 機器上以 root 權限運行以下命令。

apt-get 安裝 ssh

備份本地機器上的目錄

在本地機器上同步文件時的基本語法如下。

rsync 選項源目錄目標目錄

如果您想保留元數據,如所有權、權限、創建日期等,您必須使用 -a 選項。 如果要遞歸複製目錄內的目錄,則必須使用 -r 選項。

rsync -ar 源目錄目標目錄

類似地,如果您想在同步過程中查看進度,請使用 -v 選項。 命令應該如下所示,

rsync -avr 源目錄目標目錄

假設我們要將位於 Desktop/log 的文件和文件夾同步到 Karim/logro,命令應如下所示。

rsync -avr 桌面/日誌 Karim/logro

以下是示例輸出。

使用 rsync 命令備份文件

讓我們再討論一個 example 假設我們有一個文件夾 data-1 位於硬盤 1 (/media/hdd1/data-1),並且您想將它同步到位於 /media/hdd2/ 的第二個硬盤。 完整的命令應如下所示。

rsync -avr /media/hdd1/data-1 /media/hdd2/

命令執行時將在第二個硬盤驅動器中創建一個 data-1 目錄,並將復制目標路徑 /media/hdd2/ 上的所有內容。

通過網絡備份文件和目錄

通過網絡傳輸數據時,語法略有不同。 當您想將本地目錄與遠程目錄同步時,命令應如下所示。

同步 [-options] 源文件夾路徑 [email protected]:PathofDestinationFolder

假設我在 /home/karim/testfolder 的本地機器中有一個 testfolder,我想在 /home/karim 同步它。 遠程用戶是“karim”,機器 IP 地址是 10.1.1.2。 在終端上運行以下命令。

rsync -avr /home/karim/testfolder [email protected]:/家/卡里姆/

執行此命令後,將要求您輸入遠程機器的密碼。

以下是同步目錄後的示例輸出。

使用 rsync 遠程備份

當您想將遠程目錄與本地目錄同步時,命令應如下所示。

同步 [-options] [email protected]:PathofSourceFolder PathofDestinationFolder

假設我們有一個位於 /home/karim/ 的遠程文件夾“testfolder”,我想與位於 /home/karim/ 的本地機器同步。 遠程機器IP地址是10.1.1.2,用戶名是karim。

在終端上執行以下命令。

rsync -avr [email protected]:/家/卡里姆//家/卡里姆/測試文件夾

下面是示例輸出。

同步備份

如何自動備份

自動化備份更方便,系統工程師無需擔心每天手動執行命令和進行備份。

Linux 中有一個名為“crontab”的著名工具,用於自動執行備份過程。 我們可以安排每天、每週或每月運行上述所有命令。 如果您尚未在 Linux 發行版上安裝 crontab,請在終端上運行以下命令 sudo 特權。

apt-get 更新 apt-get 安裝 cron

安裝 crontab 後,在終端上運行以下命令以打開 crontab 編輯器。

crontab -e

示例輸出應如下所示。

設置備份 cronjob

crontab有以下五個字段,

mh dm m dw 命令

m:指定分鐘(0-59)

h:指定小時(0-23)

dm:指定月份中的第幾天 (1-31)

m:指定月份(1-12)

dw:指定星期幾(0-6,其中0為星期日)

我們先來看一個 example 將目錄從一個磁盤同步到另一個磁盤並假設我們想在每天下午 12 點執行此操作,cron 作業應如下所示。

0 0 * * * rsync -avr /media/hdd1/data-1 /media/hdd2/

假設您想在每個月的周日中午 12 點進行備份,那麼 cron 作業應編寫如下。

0 0 1 * * rsync -avr /media/hdd1/data-1 /media/hdd2/

結論

您已經閱讀了我們如何使用極其強大的命令“rysnc”進行備份。 我們用“crontab”結束了這篇文章。 ‘rsync’ 和 ‘crontab’ 也是一個有用的組合。