当前位置: 首页>>技术教程>>正文


哪些文件夹要包含在备份中?

,

问题描述

我对 Ubuntu 很陌生,想创建一个备份。我真的不确定要包含哪些文件和文件夹,这样如果我恢复我的系统,它就会像现在一样。我似乎无法在任何地方找到这方面的详细信息。希望有人能帮我解决这个问题。是否可以像现在一样备份所有内容,以便在系统还原时不必重新安装程序和设置?

最佳办法

我的备份集目前包含

/etc
/home
/root
/srv
/usr (/usr/local only, nothing else)
/var (except /var/run, /var/cache, /var/tmp)

请注意,这是针对服务器的,因此备份 /etc 之类的东西会保存我所有的服务配置,我在 /srv 中有 Web 服务器(尽管如果你在 /var/www 中有它们,它们仍然会在这个备份集中) ,我在 /usr/local 等中设置了各种脚本和东西。备份 /home 而不是 /home/myusername 是为了我可以保留所有用户。如果你只想保留你的用户数据,你只需要你的主目录。

编辑:如果您在 /opt 中有任何内容,您可能也应该包括它。感谢@GabrielStaples 指出这一点。

次佳办法

您需要备份的内容取决于您的特定系统*。

所以这将需要你做一些工作来解决。首先找出不需要备份的内容。首先看看你的根目录,然后再往回看。

例如,cd /; ls -F 给我:

bin/    initrd.img@      mnt/   snap/  vmlinuz@
boot/   initrd.img.old@  opt/   srv/   vmlinuz.old@
cdrom/  lib/             proc/  sys/
dev/    lib64/           root/  tmp/
etc/    lost+found/      run/   usr/
home/   media/           sbin/  var/

/cdrom/media/mnt 是安装点,因此不需要备份。

/dev/lost+found/proc/run/sys/tmp 在重新启动时获得自动 re-created。 [我猜是链接:/initrd.img@/initrd.img.old@/vmlinuz@、/vmlinuz.old@ get re-created on boot ubuntu reinstall(我不确定是哪个)。]

在我的系统上 /root 是空的(使用 sudo -s 以 root 用户身份打开 shell 以查看它……在检查 /root 后立即注意 exit 。)

/snap 也是空的。也许这是一个挂载点。

/var 包含可变数据,例如系统日志文件、邮件和打印机假脱机目录以及临时文件和临时文件。”我现在备份它,除了 /var/log。参考:http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/var.html)

/bin/boot/lib/lib64/sbin 可能会通过重新安装 Ubuntu 重新加载,除非您正在进行系统开发工作或类似的工作。您可以备份它们或依靠全新安装来恢复它们。

/home 应该在它自己的备份中。有时您只想恢复 /home

这留下了您在 /etc/opt/srv/usr 中对系统所做的其他更改,您也希望将它们一起或单独备份。

这里有几页可能有助于理解这些目录:

http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/the-root-directory.html\n http://www.tldp.org/LDP/intro-linux/html/sect_03_01.html#sect_03_01_03


一个相关的思路是:假设你刚刚安装了一个新的 Ubuntu。您需要备份什么?答:没什么。您还没有更改任何内容,因此您可以简单地重新安装 Ubuntu。它恢复 /bin、/etc、/root、/usr 等。

因此,您可能想要备份 /bin 的唯一原因是因为您已经更改或添加了它。因此,备份的一部分是了解创建和修改内容的位置和时间。只知道我们其他人也为此而苦苦挣扎。


*****而且,尽管您没有要求,但可以制作完整的磁盘或分区映像。这些需要花费大量时间来备份和恢复,并且可能会在工作进行时让您的系统停机。这就是我过去使用 Acronis 备份我的 Windows 系统的方式。他们为您提供的一件事是分区图,以及来自非 Linux 分区的图像。我现在在重新组织分区之前和测试我的备份恢复功能之前制作这些。


(我非常愿意接受关于如何使它变得更好的建议。)

第三种办法

如果我重新安装我的桌面系统,我备份

  • /etc

  • /var , 懒得排除一些 sub-folders

  • /opt

/home 在一个单独的分区上,每天都有备份。

重新安装后,我从备份中恢复我真正需要的部分。

有了这个策略,我所有的配置、本地邮件和 crontab 配置都是安全的,我只需要重新安装我需要的应用程序。

我的个人脚本保存在我的主文件夹中(每日备份,还记得吗?),因此我不使用 /usr/local

第四种办法

让我们在这里收集一个文件列表。我已将此帖子设为“社区维基”。

当然,因人而异。我的主要用作网络服务器和 NFS 服务器。

mkdir $MY_BACKUP_FOLDER
cd $MY_BACKUP_FOLDER

crontabs

sudo rsync -a --relative /var/spool/cron/crontabs .

NFS 共享

sudo rsync -a --relative /etc/exports .

sudoers

sudo rsync -a --relative /etc/sudoers .

阿帕奇配置

sudo rsync -a --relative /etc/apache2/apache2.conf .

autofs

sudo rsync -a --relative /etc/auto* .

fstab

sudo rsync -a --relative /etc/fstab .

hosts

sudo rsync -a --relative /etc/hosts .

samba

sudo rsync -a --relative /etc/samba/smb.conf .

USB 设备 (udev) 规则

sudo rsync -a --relative /etc/udev .

systemd

mlocate

sudo rsync -a --relative /etc/updatedb.conf .

Ubuntu 启动器 (“Start Menu”) .desktop 文件,包括。您设置的任何自定义的:

sudo rsync -a --relative /usr/share/applications .

如果您重新安装 ubuntu,则可以保留主目录

第五种办法

大多数人只是备份他们的主目录: /home/$USER/ 。如果您想备份配置文件和设置,这些文件和设置存储在主目录中以 . (点)。列出您使用的包(和 PPA),如果您需要,重新安装所有包将很容易。或者,使用 this comment 中描述的命令。

Deja Dup Backup 是一个很棒的工具,在 Ubuntu 上是默认的。其他选项包括命令行(rsync、rsnapshot、rdiff-backup 等)。

最后,要将整个磁盘备份为映像,请查看 clonezilla

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/13571.html,未经允许,请勿转载。