linux - 如何使用存在的符号链接(symbolic link)备份整个服务器?

标签 linux centos backup cpanel symlink

我正在尝试下载整个服务器的副本(安装了 cPanel 的 Linux,运行 CentOS)。

我最初做的是 tar 整个服务器,然后下载 tar 文件。这样做的问题是,当我在家用电脑上解压缩以确保一切都在那里时,我在 WinRAR 中遇到了很多错误,说它无法提取某些文件。

进一步调查后,我意识到它无法提取的文件是符号链接(symbolic link)。

我不一定需要能够在我的家用计算机上使用符号链接(symbolic link),但如果需要重新创建它们,最好备份它们。如果我将文件解压缩到 Linux 服务器上,符号链接(symbolic link)是否仍然有效?这样我以后就可以将它们用作引用,从而知道哪些文件链接到了哪些?

如有任何建议,我们将不胜感激!

最佳答案

使用tar。 您应该能够在目标机器上获得您的符号链接(symbolic link)。但是,如果您将根目录移动到某个挂载点下,您可能必须替换其中的一些。

在这种情况下,您可以找到符号链接(symbolic link)

tar tvf the_backup.tar  | egrep -i 'symbolic link to /| -> /'

(或等效的 tar tvf 用于在目标计算机上显示符号链接(symbolic link))

这将显示所有指向“绝对”链接的符号链接(symbolic link)(链接以“/”开头),即如果您在子目录下解压备份,则最有可能出现麻烦的符号链接(symbolic link)。

例如:

$ tar tvf the_backup.tar | egrep -i 'symbolic link to /| -> /'
?rwxrwxrwx 4000 500       0 Nov 05 17:00:00 2014 foo symbolic link to /bar

注意:

  • 一些 tar(GNU tar,例如 ex)使用“-> xxx”来指示指向 xxx 的符号链接(symbolic link)
  • 有些人使用“到 xxx 的符号链接(symbolic link)”代替(可能会出现其他变体……)
  • 一些(旧的)tar 不会去掉开头的 '/' 所以要小心:如果你使用那些旧版本在目标机器上解压,文件“/something”将转到“/something”而不是“/subdir_where_you_wanted_to_extract/something”……它会造成很大的伤害。首先尝试一个只包含“/dummyfile”的小 tar

关于linux - 如何使用存在的符号链接(symbolic link)备份整个服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26761661/

相关文章:

linux - 模拟用户输入以使用不同参数多次调用脚本

c - 为什么 fork() 打印输出两次?

linux - awk 打印一个模式

python - 为什么在使用 Anaconda 启动期间运行 virt-install BASH 脚本与使用 Python 的 subprocess.run() 函数会出现不一致?

Linux : automatically execute an sh script when switched to another user

unix - 将日志从文件转发到日志

mysql - MYSQL数据库迁移不丢失记录

android - Python:解压android备份?

linux - 如何从命令行批量重命名文件?

php - 从 FTP 到 Bitbucket/Dropbox/Box