如何在 Linux 中从 tgz 文件恢复备份

如何在 Linux 中从 tgz 文件恢复备份

如何backup.tgz在自己的服务器上恢复另一台 Linux 服务器生成的文件?我尝试了以下命令:

tar xvpfz backup.tgz -C /

上述命令有效,但它替换了现有的系统文件,这使得我的 Linux 服务器无法正常工作。

我怎样才能恢复而不遇到麻烦?

答案1

您可以使用--skip-old-files命令来告诉tar不要覆盖现有文件。

如果两台服务器的软件版本不同,您仍然可能会遇到备份文件问题。某些数据文件结构可能发生变化,系统可能会停止运行。

应该开发更加完善的备份流程。

答案2

除非另有说明,否则 tar 实用程序会将文件提取到当前目录中的原始树中,例如,当您在 /home/antonio/recovery 中时,您发出命令

tar xvpfz backup.tgz

文件将被恢复到/home/antonio/recovery...

如果你使用 -C 选项,这将告诉 tar 更改目录并将文件提取到以该目录为根的树中,例如

 tar xvpfz backup.tgz -C /tmp 

会告诉 tar 更改为 /tmp 并将文件提取到/tmp/...

答案3

提示:也许您不想恢复所有内容,只想恢复一个文件或一个目录。

使用此命令查看备份的内容:

tar -tzf backup.tgz | grep toys.db (或任何你要查找的内容)

假设它返回如下内容:./home/myname/play/toys.db

要恢复它,您可以:tar -xvpzf backup.tgz -C /tmp ./home/myname/play/toys.db

答案4

可以通过以下方式恢复 ascii 文件

  • 进入单用户模式。grep -ib“filename'
  • /dev/whateverpartion_name > /tmp/somefile

查看 /tmp/somefile 并查看您想要从 /dev/ 复制到原始位置的内容。

如果您使用的是 ext2 挂载,也许您可​​以尝试恢复命令。

我对未来的一点建议是:在实际运行之前,请务必阅读手册页以了解命令和参数。

相关内容