![如何在 Linux 中从 tgz 文件恢复备份](https://linux22.com/image/634576/%E5%A6%82%E4%BD%95%E5%9C%A8%20Linux%20%E4%B8%AD%E4%BB%8E%20tgz%20%E6%96%87%E4%BB%B6%E6%81%A2%E5%A4%8D%E5%A4%87%E4%BB%BD.png)
如何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 挂载,也许您可以尝试恢复命令。
我对未来的一点建议是:在实际运行之前,请务必阅读手册页以了解命令和参数。