AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 936307
Accepted
IMTheNachoMan
IMTheNachoMan
Asked: 2017-07-15 20:12:57 +0800 CST2017-07-15 20:12:57 +0800 CST 2017-07-15 20:12:57 +0800 CST

将一个分区中的所有文件复制到另一个分区中的文件夹并更新符号链接

  • 772

我有两个分区:

  • /dev/sda安装为/
  • /dev/sdb已安装 ias/stuff

我想将所有内容从/to复制,/stuff/backup但我也希望符号链接更新为指向 /in /stuff/backup。

例如,如果我有一个像这样的符号链接:

/path/to/some/link -> /path/to/the/real/file

然后备份后它应该如下所示:

/stuff/backup/path/to/some/link -> /stuff/backup/path/to/the/real/file

我用谷歌搜索了一下,但似乎无法弄清楚。

backup
  • 1 1 个回答
  • 2044 Views

1 个回答

  • Voted
  1. Best Answer
    Panther
    2017-07-17T08:42:33+08:002017-07-17T08:42:33+08:00

    根据讨论,IMO,tar 是最好的工具,因为它将保留链接。我还建议从现场 CD 中执行此操作。您将挂载您的 ubuntu 根分区并 cd 进入其中。

    如果要备份数据库,请使用数据库工具,即 mysqldump

    从正在运行的系统(不是现场 USB):

    注意:在运行此命令之前查看这些排除项,有关详细信息,请参见下文。

    最小排除是/proc /tmp /mnt /dev和/sys 其他是可选的,但会显着减少备份的大小

    cd / # THIS CD IS IMPORTANT THE FOLLOWING LONG COMMAND IS RUN FROM /
    tar -cvpzf backup.tar.gz \
    --exclude=/backup.tar.gz \
    --exclude=/proc \
    --exclude=/tmp \
    --exclude=/mnt \
    --exclude=/dev \
    --exclude=/sys \
    --exclude=/run \ 
    --exclude=/media \ 
    --exclude=/var/log \
    --exclude=/var/cache/apt/archives \
    --exclude=/usr/src/linux-headers* \ 
    --exclude=/home/*/.gvfs \
    --exclude=/home/*/.cache \ 
    --exclude=/home/*/.local/share/Trash /
    

    这将压缩存档,它是完全可移植的,位于 /backup.tar.gz

    选项的含义:来自https://help.ubuntu.com/community/BackupYourSystem/TAR

    tar - 是创建存档的命令。它由紧随其后的每个字母修改,每个字母在下面解释。

    c - 创建一个新的备份存档。

    v - 详细模式,tar 将在屏幕上打印它正在做什么。

    p - 保留存档中文件的权限以供以后恢复。

    z - 使用“gzip”压缩备份文件以使其更小。

    f - 指定存储备份的位置,backup.tar.gz 是本示例中使用的文件名。它将存储在当前工作目录中,即您在使用 cd 命令时设置的目录。

    \ 只是继续下一行的命令,为了清楚起见,我添加了它们。

    --exclude应该是不言而喻的,但它不包括那些目录。

    您可以使用该--one-file-system选项而不是 /proc、/sys、/mnt、/media、/run 和 /dev 的所有排除项,但是,如果您有单独的 /boot 或 /home(或其他分区),则需要将其添加到存档中。

    您可以排除您知道不需要的目录,即没有编辑。/usr/share或类似的。

    要查看内容,请参阅如何在不从命令行提取的情况下查看 tar.gz 文件的内容?

    您可以使用 vim / gvim 查看文件内容并使用 zdiff 列出差异

    编辑:从评论“它在显示中途爆炸:/lib/plymouth/themes//lib/plymouth/themes/ubuntu-text/tar:/: 文件在我们在 mini-PCIe SSD 上 10 分钟后读取时发生了变化(Sata II 频道)。这需要一些时间来微调“

    发生这种情况是因为文件系统正在使用中,因此如果在 tar 期间有更改写入磁盘,您将收到此类消息。可以通过在 tar 存档中尽可能多地排除和/或从 live CD/USB 运行 tar 来避免此类问题

    此外,从评论中,其他被排除在外的候选人是:

    ~/.cache # 这些文件完全没有必要,事实上你可以随时通过删除这个目录来恢复磁盘空间。

    /usr/src/linux-headers* # 再说一次,你不需要的大量数据。

    ~/.local/share/Trash # 查看并删除垃圾或排除此目录

    /media # 会有例如 Windows 分区

    /var/run/user/$USER/... 这是 /run 的符号链接,所以我 --exclude=/run 也是如此。#这将具有可移动设备,例如闪存驱动程序和 android 设备,因此可能可以排除。

    • 3

相关问题

  • NTFS 备份映像不会挂载

  • 如何备份/恢复我的 Empathy 日志?

  • 如何将 Ubuntu 放在非闪存外部 USB 硬盘驱动器上?

  • 备份工具比较

  • 如何使文件夹与外部 USB 硬盘保持同步?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve