第1-0学时服务器端自动化
下载
第1 0学时 服务器端自动化
自动化可以定义为一个过程,它设计了一种方案,可以在没有人为干预的情况下自动完
成。自动化和可伸缩性关系密切。在这个学时中,你的目标就是找到一种方法,它可以自动
执行S a m b a 的功能,以处理来自不同客户机的连接。即使你没有管理大量的用户,计算机或
者服务器,也仍然可以从自动化中受益。
10.1 什么是服务器端自动化
服务器端自动化功能描述系统管理员配置的在服务器上发生的事件,在客户连接到一项
服务(如一个文件或打印机)时,其结果便是发生这些事件。可能这个说明有些唠叨,但是了解
一些例子将会帮助我们更加清楚地理解这些定义。
回忆前面学时的内容,你已经看见了两个服务器端自动化的例子。是否记得 [ h o m e s ]服
务?当一个用户企图连接到他的主目录(例如 \ \ b i l b o \ j o e )时,假设已经定义了[ h o m e s ]服务,
S a m b a试图首先在s m b . c o n f然后在本地的p a s s w d文件中找到共享名称。如果在 / e t c / p a s s w d 中找
到名称,S a m b a 自动创建[ h o m e s ]共享的副本,并将其重新命名为连接的用户名称。这个过程
对于用户是透明的,而且没有任何人的干预。如果为 U N I X框上的新用户创建了一个帐号,你
没有必要在 s m b . c o n f文件中修改任何内容,以让那个用户访问他的主目录。这就是服务器端
自动化的含义。解决方案是可缩放的和自维护的。
第8学时中的[ p r i n t e r ]服务是S a m b a的内置自动化的另一个例子。没有必要为使用打印机而
为系统上的每个可以使用的打印机进行定义(尽管如果愿意你当然可以这样做),目的是可以使
用打印机。 S a m b a将从定义的p r i n t c a p文件中得到合法的打印机名称列表。如果创建另一个打
印机,S a m b a将自动地注意到它。
在开始学习自动化客户支持的一些更加专用化方法之前,要记住,这
些例子仅仅是建议,决不是使用参数或者机制的唯一方法。必须用各种不
同的组合进行试验。希望你对这些例子感到满意,并在学时结束时,有自
己的想法。尤其是让 S a m b a为你工作。这里的这些例子只是为你提供一个
工作的基础。
首先,我们将学习第 5学时的s m b . c o n f 中可以使用的变量。如果你需要参考,表 5 - 2列出了
完整的列表。变量为区别连接建立了基础。在这个学时的其余部分,将使用的一些更加常见
的参数,即%u 、%U 、%g 、%G 、%L和%d 。
10.2 preexec和postexec脚本
用4个参数来指定当客户连接到服务器或者从服务上断开时在服务器上执行的命令:
p r e e x e c
p o s t e x e c
第10学时用服务器端自动化用用113
下载
root preexec
root postexec
10.2.1. preexec和postexec
首先学习p r e e x e c和p o s t e x e c参数。这两个参数都带有一系列的命令或者脚本名称,它可以
在服务器上用% u 的u i d 执行。回忆一下,在第 5 学时中,% u 是当前服务的用户名称。在
Wi n d o w s 中通过使用来自net use命令的输出可以执行脚本,可以更加准确地解释:
C:\users\jerry>net use s: \ \bilbo\src
The command was completed successfully.
p r e e x e c命令在net use命令运行和Wi n d o w s报告 “The command was completed successfully ”
之间执行。对于 p o s t e x e c 命令也是这