大企鵝-linux
如果您正在尋找 Linux 系統上的免費指令行備份工具,那麼 tar 指令就是您的解決方案。Tar 指令可以為您的應用程式、配置檔案和系統檔案夾建立備份。
tar (tape archive) 即錄音帶歸檔,可以将多個檔案和目錄歸檔到一個 tar 檔案中。這個 tar 檔案也可以使用 gzip 和 bzip2 壓縮實用程式進行壓縮。一旦我們準備好了 tar 備份,我們就可以使用 scp 或 rsync 指令輕松地将其傳輸到遠端備份伺服器。
在這篇文章中,我們将示範如何在 Linux 中使用 tar 指令建立備份。
如何建立 tar 備份檔案?
要建立 tar 備份檔案,首先确定作為備份的一部分的檔案和檔案夾。假設我們要備份 /home/linuxtechi, /etc 和 /opt 檔案夾。運作以下 tar 指令
$ sudo tar -cvpf system-back.tar /home/linuxtechi /etc /opt
這将在目前工作目錄中建立一個 tar ball,在上面的 tar 指令中,我們使用了以下選項
- c – 建立新的存檔
- v – 在建立 tar 檔案時顯示詳細輸出
- f – 存檔檔案名
- p – 儲存權限
建立 tar 備份并使用 gzip 壓縮
在 tar 指令中使用 z 選項使用 gzip 壓縮,tar 備份檔案的擴充名為 .tgz 或 .tar.gz
$ sudo tar -zcvpf system-back.tgz /home/linuxtechi /etc /opt
建立 tar 備份并使用 bzip2 壓縮
在 tar 指令中使用 j 選項使用 bzip2 壓縮,tar 備份檔案的擴充名為 .tbz2 或 .tar.bz2
$ sudo tar -jcvpf system-back.tbz2 /home/linuxtechi /etc /opt
如何追加一個檔案 tar 備份?
追加一個檔案到現有的 tar 備份檔案,使用 -r 選項,完整的指令将如下所示
Syntax: $ tar -rvf {tar-backup} {new-file-to-be-appended}
假設我們要将 /root/app.yaml 檔案附加到 system-backup.tar,運作
$ sudo tar -rvf system-back.tar /root/app.yaml
注意: 我們不能追加檔案或檔案夾到已壓縮的 tar 備份,因為它是不支援的。
如何建立 tar 備份時排除檔案?
要在建立 tar 備份時排除檔案,請使用 -X 選項,後面跟着排除檔案。要使用排除功能,我們必須建立一個排除檔案,其中将包含要排除的檔案名。
$ cat exclude.txt
/etc/debconf.conf
/etc/hosts
在建立 /etc 的 tar 備份時,運作以下指令以排除 exclude.txt 中提到的檔案
$ sudo tar -X exclude.txt -zcpvf etc-backup.tgz /etc
如何檢視 tar 備份的内容?
要檢視 tar 備份的内容,使用 -t 選項,完整選項是 -tvf,示例如下
$ sudo tar -tvf system-back.tgz | grep -i etc/fstab
-rw-rw-r-- root/root 665 2021-07-07 04:57 etc/fstab
如何提取 tar 備份?
在 tar 指令中使用 -x 選項提取 tar 備份,完整選項為 -xpvf,示例如下
$ sudo tar -xpvf system-back.tgz
此指令将在目前工作目錄中提取系統 back.tgz,如果您要在特定檔案夾中提取它,請使用 -C 選項,在下面的示例中,我們将 system-back.tgz 提取到 /var/tmp 目錄
$ sudo tar -xpvf system-back.tgz -C /var/tmp/
$ ls -l /var/tmp/
如何驗證 tar 備份的完整性?
對于 tar ball,使用 -tf 選項,然後将輸出重定向到 /dev/null
$ tar -tf system-back.tar > /dev/null
如果上面的指令沒有任何輸出,那麼我們可以說沒有損壞。
在發生損壞的情況下,我們将得到如下所示的輸出
要驗證壓縮 tar 備份的完整性,請使用以下方法
驗證 .tgz / .tar.gz 完整性
$ gunzip -c system-back.tgz | tar -t > /dev/null
驗證 .tbz2 / .tar.bz2 完整性
$ tar -tvf system-back.tbz2 > /dev/null
以上指令不應該産生任何輸出。如果有輸出,可以說壓縮的 tar 備份中可能有一些損壞。
以上就是這篇文章的全部内容,希望你能從中得到一些資訊。請在下方評論區分享你的回報和疑問。
我的開源項目
開源線上教育解決方案
- course-tencent-cloud(酷瓜雲課堂 - gitee 倉庫)
- course-tencent-cloud(酷瓜雲課堂 - github 倉庫)