天天看点

在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 仓库)

继续阅读