Perl管理Linux配置文件
http://tech.ddvip.com 2007年10月07日 社区交流
内容摘要:一般的开发者用于定位、学习和调试配置文件的所花费的时间,比您预期的要更长。不过,使用一个您可能每天都在用的工具:CVS 树,您就可以节约那些时间——并减轻精力和挫折的负担。使用这些技巧来备份、发布最令您头痛的 Linux ™(和 UNIX ®)配置文件,并使其变得可移植。
使用 Linux 和计算机时,配置文件的用法通常是令人迷惑的。尽管已经提出了一些,但现在还不存在标准。例如,Samba 和 rsync 使用 INI 风格的配置;passwd 用的是几十年前的用冒号隔开的格式,不允许冒号出现在任何域中;sudo 附带了一些 visudo 程序,让人们不会在 sudoers 文件中输入错误的信息;Emacs 使用 Lisp 作为配置文件。还有...
现在,我不再抱怨配置文件的多样性。我理解了这个配置通天塔(Configuration Tower of Babel)的历史原因和实践原因。例如,如果改变了 Samba 配置的格式,就会使上千的管理员面临麻烦。另一个例子,Emacs 的内部语言是 Lisp,这是一门强大的高层次语言,所以,使用任何其他东西作为 Eamcs 的配置文件都是荒谬的。
不,我要指出的是这一多样性对 Linux 用户造成的影响:Linux 用户的计算机时间有一大部分用在学习、编写和调试配置文件。这样,有必要拥有一个系统,在这个系统中这些配置文件(1)是自动备份的,(2)是自动发布的,(3)可以用于多种风格的 UNIX 和多种 Linux 的发行版本。本文阐明了如何达成前两个目标,并引导您走上达成第三个目标的途径。
计划
我们将使用 CVS 来控制配置文件。可以随意使用任何其他版本系统。Subversion 正在迅速流行。FSF 有 GNU tla( GNU arch),是另一个优秀的版本系统。所有那些以及很多其他系统,包括并不免费的 Rational ®ClearCase ® 等,都会提供您所需要的功能。
在我的配置模式中,每个配置文件在一个单独的目录或者其子目录中。配置文件被唯一命名,目录表示的是 机器或者平台,而不是 位置。这样,文件名唯一地映射到文件系统中的一个位置。例如, passwd 将总是用于 /etc/passwd,而 cshrc 将由用户 tzz用于 /home/tzz/.cshrc。
来源:ibm 作者:Teodor Zlatanov 责编:豆豆技术应用