第二行设置

一个专有的映射关系,第一列也是amd设置的key值,当访问对应的子目录时就启动这个设置,这一个安装点为nfs类型,nfs类型与host略有不同,host类型只需要rhost 定义,而查询服务器上的共享出的目录来自动安装,而nfs类型则要配置者手工指定远程主机共享的目录,这就需要设置rfs参数.通常在自动维护的计算机数量较少时,使用nfs类型更明确,否则可以使用host类型以简化配置工作.

设置好映射文件之后,就可以运行amd守护进程了.

# amd -a /net -c 1800 /host /etc/amd.map

# ls /host

# cd /host/nfssrv

# ls -l /host

nfssrv

上面的amd的命令参数为,第一个-a参数告诉amd将真实的文件系统安装到/net这个临时目录下,在执行amd之前必须建立这个空目录,这个目录将被amd作为autodir变量设置映射关系;-c参数用于指明超时参数,经过这个时间间隔内没有访问这个文件系统上的内容,就卸载已安装的文件系统,设置为1800秒;而/host目录为amd监视用户访问的目录,访问这个目录中的子目录,就会触发amd守护进程,例如上例中使用cd /host/nfssrv访问nfssrv子目录,那么amd 就将启动,将nfssrv设置为key值,因此amd就读取/defauts设置的缺省参数和nfssrv这个key值对应的参数,然后执行自动安装过程.最后一个参数就是指定映射文件为/etc/amd.map.

因此,amd的处理过程可以总结为:用户首先访问/host目录下的子目录,触发amd;amd 使用子目录的名字作为key值,读取相应映射文件中的设置,将文件系统安装到/net目录下的相应目录上fs定义的目录);最后amd在/host目录下以key值建立符号连接,指向已经安装到/net 目录下的真实文件系统,使得用户访问子目录的操作能够正常完成.

amd主要是和NFS结合使用,用于维护多台服务器的用户和文件目录的一致性,然而amd 不仅仅能用于维护NFS文件系统,同样也可以用于维护其他种类的文件系统,如CD9660、本地文件目录的连接,以及扩展到运行一个程序等方式自动安装相应的文件系统,对于这些非NFS文件系统,就需要使用不同的type参数定义不同的类型.例如可以使用amd将所有用户的个人目录维护在同一个路径下,而不是事实上分布在不同目录和主机上,等等.此时,amd.map应为:

/defaults opts:=rw,grpid,nosuid,nodev

wb  host==wb;type:=link;fs:=/home/wb

cd  opts:=ro;host==wb;type:=cdfs;dev:=/dev/wcd0c

dos host==wb;type:=program;mount:="/sbin/mount_msdos mount_msdos /dev/wd0s1 ${path}"

这个映射文件中的缺省设置中首先使用opts设置了几个安装选项,用于安装文件系统时使用.由于这个例子中维护的文件系统NFS文件系统,因此没有使用变量定义相应的参数,而且在维护的文件系统不多的条件下,可以直接定义各个自动安装所需要的各个参数.

第一个设置为是一个link类型,它必须在主机为wb本地主机的名字,amd将自动设置 host变量)时才有效.这个类型只是用于建立连接,因此就没有必要定义rhost和rfs,而通过 fs定义需要建立连接的目标.因此当访问/host/wb目录时,amd就自动建立一个到/home/wb的符号连接.

第二个设置为cdfs类型,这用于访问时自动安装CDROM,它通过dev参数设置安装使用的设备文件.第三个设置为program类型,当访问/host/dos目录时,amd会自动执行后面的mount_msdos 程序,装载上dos分区,安装点被使用变量path传递给外部程序的参数.

为了在启动时自动执行amd,需要修改rc.conf中的设置,更改其中的选项amd_enable为"YES", amd的执行参数在amd_flags项中设置,缺省为:

amd_flags="-a /net -c 1800 -k i386 -d my.domain -l syslog /host /etc/amd.map"

这个参数使用了另一些有用的参数,-k参数用于运行amd的计算机内核体系,-d参数用于定义计算机的domain名,修改这个参数可以帮助amd侦测计算机所在的domain名字,因此要修改为计算机实际的域名,-l参数定义审计记录文件,缺省使用syslog.amd的设置相当复杂,这里只是通过一个映射文件来提供针对一个目录的自动安装维护,实际上amd可以同时维护多个目录,这就需要设置一个配置文件,来定义多个监视目录.对于一般的目的,使用命令行指定一个映射就够用了.


相关内容