在 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
以下是示例輸出。
讓我們再討論一個 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]:/家/卡里姆/
執行此命令後,將要求您輸入遠程機器的密碼。
以下是同步目錄後的示例輸出。
當您想將遠程目錄與本地目錄同步時,命令應如下所示。
同步 [-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
示例輸出應如下所示。
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’ 也是一個有用的組合。