/etc 文件夹中的哪些配置文件对于每台计算机必须是唯一的?

/etc 文件夹中的哪些配置文件对于每台计算机必须是唯一的?

我正在对计算机上的备份文件进行恢复测试。没有多想,我把文件夹rsync中的所有文件都替换/etc为备份中的文件。然后,我意识到我不应该这样做,因为两台计算机的密码和用户名不一样。

重新启动后,计算机处于无法启动的状态,我可能必须从头开始重新安装。现在我的问题是,在相同的操作系统下,文件夹中的文件/etc对于每台计算机都是唯一的。这将允许我rsync在将来从备份进行恢复时进行微调以排除这些文件。

答案1

很少有文件在两台机器之间绝对必须不同,并且需要重新生成克隆:

  • 主机名/etc/hostname
  • SSH 主机密钥:/etc/ssh_host_*_key*/etc/ssh/ssh_host_*_key*类似位置。
  • 随机种子:/var/lib/urandom/random-seed/var/lib/random-seed类似位置。 (/var/lib/systemd/random-seed在使用 systemd 的系统上)

如果你有一堆相同的机器,其他任何东西都可能是相同的。

在具有不同硬件的计算机上,一些文件通常会有所不同:

  • /etc/fstab如果磁盘分区不同,则、/etc/crypttab/etc/mdadm.conf和引导加载程序配置文件(如果位于/etc- 某些发行版将它们放入)。/boot
  • /etc/X11/xorg.conf,如果存在,并且机器具有不同的显卡。
  • /etc/modules要在、/etc/modprobe.conf/etc/modprobe.d/中加载或列入黑名单的模块/etc/modutils/

此外,一些网络配置可能需要更改,特别是:

  • 如果您有静态 IP 地址,则每台机器的 IP 地址需要多样化。 IP 配置的位置因发行版而异(例如,/etc/network/interfaces在 Debian 上、/etc/sysconfig/network在 Red Hat 上)。
  • /etc/hosts通常包含主机名。
  • 邮件配置通常包含主机名: check /etc/mailname

对于“文件夹 (...) 中的文件对于每台计算机来说是唯一的”没有通用的答案/etc,因为文件夹的全部目的/etc是存储可以在每台计算机上自定义的文件。例如,如果您在不同的计算机上有不同的帐户,那么显然您不能共享帐户数据库 - 如果您希望能够共享帐户数据库,那么您最终将获得相同的帐户。

一般来说,不要尝试/etc默认共享,除非您有一组具有相同软件配置的计算机 - 安装相同的软件、相同的帐户等。如果您确实共享/etc,则需要将一些文件列入黑名单以防止共享如上所述。

如果您的计算机具有不同的配置,请将您同步的内容列入白名单。在不同的机器上将in 中的文件/etc视为不同的,就像/var.仅同步您决定应在所有地方应用的内容。

管理同步的一种可能方法是将特定于计算机的文件保存在不同的目录中,例如/local/etc,并创建符号链接,例如/etc/fstab -> ../local/etc/fstab.就软件而言,这仍然需要一组基本上同质的机器,因为不同的发行版将文件放在不同的位置。或者,相反,只保留机器特定的文件,/etc并将所有通用文件保留在其他地方 - 但典型的发行版不能很好地适应这一点。

您显然无法在不同系统上对一个系统的系统配置恢复进行现场测试。要测试备份的恢复,请启动一个充分模拟硬件配置的虚拟机(特别是具有类似的磁盘布局)。

相关内容