如何从linux中的tgz文件恢复备份

我怎样才能从我自己的服务器上的另一台Linux服务器生成的backup.tgz文件恢复? 我试过命令下面的命令:

 tar xvpfz backup.tgz -C / 

上面的命令工作,但它取代了现有的系统文件,使我的Linux服务器不能正常工作。

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

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

如果两台服务器的软件版本不同,仍然可能遇到备份文件的问题。 一些数据文件结构的变化可能已经发生,而事情可能会停止工作。

应该制定一个更加完善的备份stream程。

除非另有规定,否则tar实用程序将把文件解压到当前目录中的原始树中,例如在/ home / antonio / recovery中,然后发出命令

 tar xvpfz backup.tgz 

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

如果使用-C选项,则会通知tar更改目录并将文件解压缩到树中,例如

  tar xvpfz backup.tgz -C /tmp 

会告诉tar改为/ tmp并将文件解压缩到/tmp/...

提示:也许你不想恢复一切,只是一个文件或目录。

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

tar -tzf backup.tgz | grep toys.db(或者你正在寻找的任何东西)

并假设它返回如下所示:./home/myname/play/toys.db

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

ascii文件可以被恢复

  • 转到单用户模式。 grep -ib“文件名”
  • / dev / whateverpartion_name> / tmp / somefile

查看/ tmp / somefile,看看你想从/ dev /复制到原来的位置。

如果你在ext2挂载,可能是你可以尝试恢复命令。

我对未来的两点build议:在实际运行之前,请务必阅读man page以获取命令和参数。