天天看點

在linux下使用tar指令建立備份,包教包會

作者:鸠摩智首席音效師
在linux下使用tar指令建立備份,包教包會

大企鵝-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/           
在linux下使用tar指令建立備份,包教包會

如何驗證 tar 備份的完整性?

對于 tar ball,使用 -tf 選項,然後将輸出重定向到 /dev/null

$ tar -tf system-back.tar > /dev/null           

如果上面的指令沒有任何輸出,那麼我們可以說沒有損壞。

在發生損壞的情況下,我們将得到如下所示的輸出

在linux下使用tar指令建立備份,包教包會

要驗證壓縮 tar 備份的完整性,請使用以下方法

驗證 .tgz / .tar.gz 完整性

$ gunzip -c system-back.tgz | tar -t > /dev/null           

驗證 .tbz2 / .tar.bz2 完整性

$ tar -tvf system-back.tbz2 > /dev/null           

以上指令不應該産生任何輸出。如果有輸出,可以說壓縮的 tar 備份中可能有一些損壞。

以上就是這篇文章的全部内容,希望你能從中得到一些資訊。請在下方評論區分享你的回報和疑問。

我的開源項目

在linux下使用tar指令建立備份,包教包會

開源線上教育解決方案

  • course-tencent-cloud(酷瓜雲課堂 - gitee 倉庫)
  • course-tencent-cloud(酷瓜雲課堂 - github 倉庫)

繼續閱讀