今天,我们依旧来学习Unix系统的知识。Unix系统管理总是一个棘手的问题,运用正确的工具会使这个问题变得容易。在这一部分中,Teodor 提出了关于使用 Perl 来简化和牢固系统管理的想法。在这种环境中,系统配置引擎 cfengine 是一个极其重要的工具。
要完成本文中的练习,系统中必须安装了 Perl 5.6.0。操作系统***是主流 Unix 安装(Linux、Solaris、BSD)的最近版本(2000 或更新)。在较早版本的 Perl 和 Unix系统 以及其它操作系统上也可以使用本文中的示例,但应当将可能的功能故障作为练习来解决。
Unix系统 管理具有挑战性的一大原因是每个Unix系统 供应商认为标准是针对低能傻瓜。所以,即使是同一供应商的操作系统(SunOS 4.x 和 Solaris 5.x)也可以是根本不同。在某些情况下,甚至根本没有供应商。
例如,Linux 没有单独的供应商(虽然 Red Hat 目前是***的 Linux 分发版),每一个版本的 Linux 都有其独到之处。如果 POSIX 标准化做得正确,那么它是解决这一问题的正确方向上的一个步骤。遗憾的是,它只能保证系统管理所需功能的一个小的子集。
Unix系统管理最让人失望的部分是 Unix系统供应商逃避标准而找到的各种方式。由于这种原因,当 Perl 单独应付 Unix系统中所有问题时,它是无能为力的。如果没有象 cfengine 这样的工具,象密码文件语法、共享文件系统以及跟踪日志等问题很快就变得无法管理。然而,还是存在一些希望;毕竟,我们只是查看了 Perl 可简化系统管理的一些方法。
Perl 与 cfengine 结合得很好。可以用 Perl 生成定制的 cfengine 配置,或者可以从 cfengine 运行 Perl 脚本。我用过这两者,发现集成不难。然而,cfengine 受过分简单的配置语言和缺乏数据结构影响。我将在有关 cfengine 的未来文章中展开这一问题。
如果选择实现的话,本文中介绍的集中化配置文件策略应当是非常实用的。在我的站点上现在已经使用了六个月,而且获得了巨大成功。如果将完整的层次结构检入一个如 CVS 那样的版本控制系统,您还将享受到版本化系统文件的好处,即可以回复到已检入版本控制系统的任一状态。关于Unix系统,我们就讲解到这里了。
【编辑推荐】