介绍
在本实验中,你将学习在 Linux 环境中使用 tar(磁带归档)命令行工具创建和恢复文件系统备份的基础流程。主要目标是获得核心系统管理任务的实战经验,包括管理用户权限和处理文件归档。你将使用 sudo 命令以提升的权限执行必要操作,从而访问并备份系统关键目录,特别是包含用户数据的 /home 目录。
本实验将引导你使用默认的 labex 用户账号配合 sudo 执行管理任务。你将为整个 /home 目录创建一个压缩归档文件,并验证其是否创建成功。为了模拟恢复场景,你将切换到临时目录 /tmp,并解压备份归档文件的内容。最后,你将验证文件和目录结构是否已正确恢复到新位置,从而确认备份与恢复流程的完整性。
了解当前环境
在这一步中,你将了解当前的操作环境,并学习如何使用 sudo 执行管理任务。labex 用户能够通过 sudo(以超级用户身份执行)命令提升权限,这让你无需切换到 root 用户账号即可执行管理任务。
使用 sudo 是安全领域的最佳实践,因为它在保持你当前用户上下文的同时,为特定命令提供临时的提升权限。这种方法比完全切换到 root 用户更安全,因为它降低了误执行危险命令的风险。
首先,让我们通过运行 whoami 和 pwd(打印工作目录)命令来验证你当前的身份和位置。
检查当前用户:
whoami
输出应该是 labex:
labex
接着,检查当前目录:
pwd
输出应显示你位于 labex 用户的项目目录中:
/home/labex/project
你可以通过运行一个需要管理权限的简单命令来测试你的 sudo 权限。让我们查看通常需要提升权限才能访问的 /root 目录:
sudo ls /root
该命令将成功执行,证明你拥有执行管理任务所需的 sudo 权限。sudo 命令会临时授予你访问文件系统受限区域所需的权限。
现在你已经了解了环境和 sudo 的功能,准备好在下一步中创建备份了。
创建 /home 目录的备份归档
在这一步中,你将配合 sudo 使用 tar 命令创建 /home 目录的备份。tar(磁带归档器)工具是 Linux 中用于创建、查看和提取归档文件的标准工具。归档文件是将多个文件和目录打包而成的单个文件,便于存储和传输。
你当前以 labex 用户身份登录,当前工作目录为 /home/labex/project。你将在你的家目录中创建备份文件,该目录对你的用户账号是可访问的。
你将使用的命令是 sudo tar -cvf ~/backup.tar /home。让我们拆解这些选项:
sudo:授予读取/home目录下所有文件(包括属于其他用户的文件)所需的权限。-c(创建):该选项告诉tar创建一个新的归档文件。-v(详细):该选项让tar在将每个文件添加到归档时列出它们。这对于观察操作进度非常有用。-f(文件):该选项允许你指定归档文件的文件名。它后面必须紧跟归档名称。在我们的案例中是~/backup.tar。~是家目录(/home/labex)的缩写。/home:这是你想要备份的源目录。
现在,在终端中运行该命令来创建备份归档:
sudo tar -cvf ~/backup.tar /home
因为使用了 -v 选项,你会看到屏幕上滚动显示一长串文件列表,表示它们正被添加到 backup.tar 归档中。输出结果类似于这样,列出了 /home 目录下的所有文件:
tar: Removing leading `/' from member names
/home/
/home/labex/
/home/labex/.bashrc
/home/labex/.profile
/home/labex/.zshrc
/home/labex/project/
/home/labex/.zsh_history
...
提示信息 tar: Removing leading '/' from member names 是正常的。这意味着 tar 正在以相对于指定目录的路径存储归档内的文件,这是为了保证归档在不同环境下解压时的可移植性。
在下一步中,你将验证 backup.tar 文件是否已成功创建。
验证 backup.tar 文件的创建
在这一步中,你将验证上一步中是否成功创建了 backup.tar 归档文件。在执行备份等关键操作后,确认预期的输出文件是否存在始终是一个良好的习惯。
由于你在家目录中创建了备份文件(~/backup.tar),你需要检查家目录。检查文件最简单的方法是使用 ls(列表)命令配合完整路径,或者直接导航到家目录。
执行 ls 命令检查你的家目录:
ls ~
该命令将列出家目录中的所有文件和目录。你应该能在输出中看到 backup.tar 文件:
backup.tar
或者,你可以直接使用完整路径检查该文件:
ls -l ~/backup.tar
输出结果将类似于:
-rw-r--r-- 1 root root 10240 <日期> <时间> /home/labex/backup.tar
这种详细列表能让你更有信心,它显示文件确实存在且大小不为零,这正是备份归档应有的状态。请注意,该文件的所有者是 root,因为你是使用 sudo 创建的,但它存储在你可访问的家目录中。
现在你已经成功创建并验证了备份,下一步是模拟恢复场景。
切换到 /tmp 目录进行恢复
在这一步中,你将把当前目录切换到 /tmp。为了练习恢复备份,最好先将文件提取到一个中立位置。这样可以防止意外覆盖现有文件,并允许你在将数据移动到最终目的地之前检查恢复的数据。/tmp 目录是 Linux 系统中存放临时文件的标准位置,非常适合此用途。
要在 Linux 文件系统的目录之间导航,可以使用 cd(切换目录)命令。你当前位于 /root 目录。
要切换到 /tmp 目录,请执行以下命令:
cd /tmp
运行命令后,终端提示符可能看起来没有变化,但你在文件系统中的位置已经改变了。你可以使用 pwd(打印工作目录)命令来确认新位置,它会显示当前目录的完整路径。
pwd
输出应确认你现在位于 /tmp:
/tmp
既然你已经在 /tmp 目录中了,就可以准备解压之前创建的 backup.tar 归档内容了。
将备份归档提取到当前目录
在这一步中,你将把 backup.tar 文件的内容提取到当前目录 /tmp 中。这个过程通常被称为从备份中“恢复”。你将再次使用 tar 命令,但会使用不同的选项来执行提取操作。
你当前位于 /tmp 目录。备份文件 backup.tar 位于你的家目录(/home/labex)。因此,在运行命令时,你必须提供归档文件的完整路径。
提取归档的命令是 tar -xvf ~/backup.tar。让我们看看这些选项:
-x(提取):该选项告诉tar从归档中提取文件。这是与创建命令的关键区别。-v(详细):和之前一样,这会列出每个被提取的文件,向你展示进度。-f(文件):指定要处理的归档文件名。你使用~/backup.tar来引用家目录中的备份文件。
请注意,提取过程不需要 sudo,因为你正在向 /tmp 提取,普通用户对该目录拥有写权限,且你只是在读取备份文件(而不是修改系统文件)。
现在,在终端中执行命令来提取文件:
tar -xvf ~/backup.tar
你会看到当前目录(/tmp)中正在创建的文件和目录列表。输出将是归档中包含的文件列表,看起来应该和你创建它时看到的很像:
home/
home/labex/
home/labex/.bashrc
home/labex/.profile
home/labex/.zshrc
home/labex/project/
home/labex/.zsh_history
...
此输出表明 tar 已在 /tmp 内部创建了一个 home 目录,并将所有备份的文件和目录恢复到了其中。在最后一步中,你将验证这一点。
验证文件已恢复到 /tmp
在最后一步中,你将确认备份归档中的文件是否已正确提取到 /tmp 目录。这是任何恢复流程中确保数据完整性的关键环节。
你当前位于 /tmp 目录。要查看新创建的 home 目录,请使用 ls 命令:
ls
你应该能在列出的其他临时文件中看到 home 目录:
home
...
这确认了归档中的顶级目录已被创建。为了更彻底地检查,让我们看看这个新的 home 目录内部,确认它是否包含预期的用户数据。
ls home
输出应显示 labex 用户的家目录,这正是你备份的原始 /home 目录的内容:
labex
这确认了备份和恢复流程是成功的。你已经利用 sudo 权限创建了 /home 的备份,将其存储在家目录(/home/labex)中,然后成功将其恢复到了临时位置 /tmp/home。
你可以通过对比几个文件来验证恢复的文件是否与原始文件一致。例如,检查你的 .bashrc 文件是否已正确恢复:
ls home/labex/.bashrc
输出应确认文件存在:
home/labex/.bashrc
备份和恢复流程现已完成。你已成功演示了如何配合 sudo 权限使用 tar 来创建系统备份并保持用户上下文,这是系统管理任务中推荐的操作方式。
总结
在本实验中,你学习了如何执行一项基础的系统管理任务:在 Linux 中配合 sudo 权限使用 tar 命令创建和恢复目录备份。流程始于了解你作为 labex 用户的环境,并在必要时使用 sudo 以提升的权限执行命令。这种方法比完全切换到 root 用户更安全,因为它在保持用户上下文的同时,为特定任务提供临时的提升权限。
你配合 sudo 使用了 tar 工具创建了一个名为 backup.tar 的单归档文件,其中包含了 /home 目录的所有内容,并将其存储在可访问的家目录中。这演示了如何在遵循用户边界且避免与系统功能产生潜在冲突的情况下处理系统级备份。
在实验的恢复部分,你学习了先切换到安全的临时位置(如 /tmp 目录)以避免覆盖在线数据的最佳实践。随后,你使用 tar 命令将 backup.tar 归档的内容提取到当前目录,此过程无需提升权限,因为你只是读取备份文件并写入用户可访问的位置。最后一步涉及验证备份中的文件和目录是否在 /tmp 中正确恢复,从而确认了整个备份与恢复周期的完整性。



