保持硬链接和符号链接,创建tar球时的权限,同时解压缩tarball

时间:2012-06-15 09:22:55

标签: linux bash

任务:提供远程升级系统或添加新功能的工具。

我应该做什么创建目标计算机当前环境的备份,如果在任何阶段升级失败,则恢复到原始环境。

说我的目录结构是这样的:

  

/ home / user / project1 / .... bla bla

项目1包含符号链接,硬链接,软件和固件的可执行文件等。

我的困境

我应该使用策略1还是2?

  1. 我应该复制整个当前环境,如果升级失败则还原。

      

    示例 - > cp -p -r / home / user / project1 / * / home / user / project1_backup /

         

    如果升级失败 - >

         

    mv / home / user / project1_backup / / home / user / project1

  2. 如果升级失败,我应该压缩整个环境并解压缩它。为了创建tar球,我对保留符号链接和硬链接持怀疑态度......同时解读它。

  3. 有些人可以提供具体的答案,我应该遵循哪种方法,如果我采用焦油球方式,那将是什么bash命令。

    据我所知,tar -cvfz用于创建tar gunzip 不会保留链接和权限,同样在解开tar球时也是如此。 请点亮一下?

1 个答案:

答案 0 :(得分:10)

我会使用第二个选项:创建一个tarball;因为tarball有一些积极的一点:

  • 您可以跨文件系统保留权限/特殊文件(在将ext *文件夹备份到NTFS文件系统时很有用)
  • 一个大文件的副本将比一千个小文件快
  • 你可以压缩它。

这是命令:

tar --preserve-permissions --preserve-order -jc /path/to/your/folder > /path/to/your/backup_file.tar.bz2

这将保留您的许可,您的符号链接。 对于硬链接,我给你这个链接(http://www.gnu.org/software/tar/manual/html_node/hard-links.html

(但默认情况下,tar保留硬链接)

在升级系统之前不要忘记测试你的tarball !!

(如果未正确创建存档,您将避免几乎所有数据丢失)