如何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 挂载,也许您可以尝试恢复命令。
我对未来的一点建议是:在实际运行之前,请务必阅读手册页以了解命令和参数。