问题描述
我对 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 。