我正在使用以下方法备份我的 Linux CentOS 6射雕。
我已经进行了每日备份,仅备份数据库和电子邮件等重要内容。
不过,我想建立一个“全部的“几乎整个机器都将被镜像的备份。这是为了“以防万一”的偏执。
我理解有些目录只是保存临时文件,或者每次启动时都会重新创建,或者有其他考虑因素表明备份它们没有好处。在“现成的” CentOS 6 安装中,哪些目录备份没有好处,每个目录的技术原因是什么?
答案1
中的任何内容/tmp
,/run
或者/shm
您不需要备份。/dev/*
从备份中排除,因为它是在每次启动时创建的,并且/proc/*
和/sys/*
是虚拟文件系统。
/var/log
通常存放日志文件,请考虑在备份之前删除旧的日志文件。
检查哪些应用程序正在使用/var/spool
-/var/cache
根据您的需要,您可能不需要在那里备份某些内容。例如,如果您正在运行squid
和恢复系统,您可能squid
无论如何都想重新创建缓存,所以不要费心备份它。
其他所有内容你都应该备份。
答案2
总体思路
首先,我想说几点。我假设您排除不必要的目录的目的是为了节省备份空间和文件传输时间。不要太担心排除每一个不必要的片段。这可能不会节省大量空间或时间。
如果您使用增量备份,它将仅保存已更改的文件,而很多内容很少更改。因此,即使您备份了一些不必要的目录,在初始备份之后也可能不会添加太多内容。
有些目录主要包含空目录和/或小文件。特别是如果备份使用某种形式的存档文件,这些目录占用的空间很小。选择要排除的目录时,请查看其大小。排除占用空间很小的目录可能不值得。将来的某些软件可能会将您可能不知道的东西粘在那里,在这种情况下,它将永远不会被备份。
如果您不使用增量备份,您可以通过将内容结构化以将更改的内容与不变的内容分开来节省一些空间和时间。即使您不想弄乱系统目录,也可以在您的主目录中轻松完成此操作。仅在需要时对固定内容进行新备份。
具体建议
LawrenceC 专注于系统目录。您还可以在 /home 目录中应用目录排除目标,并且根据您加载的内容,可能会有一些实质性的块(我假设 CentOS 与其他 Linux 发行版类似):
除外情况
.local/share/Trash
(您已删除的文件,除非您想保存它们)- 搜索名为
cache
或 的目录.cache
。这些是临时文件。 - 搜索名为
log
或 之类的目录Crash Reports
。这些目录通常包含永久存在的活动或问题记录。您可能想要查看它们,但如果信息很古老并且您没有遇到问题,那么保存它们就没有什么价值。
仅定期备份
有些目录可能会变得非常大,并且可能不会改变,这取决于您如何使用它们,或者如果您进行紧急恢复,这些更改可能不会产生太大影响。这些可能包括 VM 或 WINE(和/或 PlayOnLinux)。如果您有这些目录,并且它们很大,并且没有重要的日常更改,您可以以不太频繁的时间表单独备份它们。
隔离文件
如果您是视频、音乐、图片或历史电子邮件的收藏者或保存者,这些收藏可能会变得很大。通常,您会向其中添加内容,但以前的文件不会更改。如果您进行完整备份,这些文件可能会在每次备份中占用大量空间。节省备份空间和时间的一种方法是将“历史”文件隔离在单独的目录中。根据需要单独备份这些文件。
答案3
浏览器缓存:应排除 Firefox 和 Chrome/Chromium 的缓存,因为它们对于备份目的毫无用处:
exclude /home/username/.cache/mozilla/firefox/*.default/cache2/entries/* exclude /home/username/.cache/mozilla/firefox/*.default/cache2/doomed/* exclude /home/username/.cache/chromium/*
Google-earth 缓存:会占用很多空间,而且对于备份来说毫无用处:
exclude /home/username/.googleearth/Cache/unified_cache_leveldb_leveldb2/*
虚拟机 VDI/VMDK/VHD:即使虚拟机内部发生很小的更改,也需要复制整个文件。相反,像 vdfuse 这样的好工具(https://github.com/Thorsten-Sick/vdfuse) 可用于挂载虚拟机磁盘映像,并将其添加到增量备份的源路径。可以保留虚拟机磁盘映像的空副本以用于恢复目的(挂载和复制文件)。