This is am-utils.info, produced by makeinfo version 4.0b from am-utils.texi. START-INFO-DIR-ENTRY * Am-utils: (am-utils). The Amd automounter suite of utilities END-INFO-DIR-ENTRY  File: am-utils.info, Node: arch Selector Variable, Next: autodir Selector Variable, Prev: Selectors, Up: Selectors arch Selector Variable ...................... The machine architecture which was automatically determined at compile time. The architecture type can be displayed by running the command `amd -v'. *Note Supported Platforms::.  File: am-utils.info, Node: autodir Selector Variable, Next: byte Selector Variable, Prev: arch Selector Variable, Up: Selectors autodir Selector Variable ......................... The default directory under which to mount filesystems. This may be changed by the `-a' command line option. *Note fs Option::.  File: am-utils.info, Node: byte Selector Variable, Next: cluster Selector Variable, Prev: autodir Selector Variable, Up: Selectors byte Selector Variable ...................... The machine's byte ordering. This is either `little', indicating little-endian, or `big', indicating big-endian. One possible use is to share `rwho' databases (*note rwho servers::). Another is to share ndbm databases, however this use can be considered a courageous juggling act.  File: am-utils.info, Node: cluster Selector Variable, Next: domain Selector Variable, Prev: byte Selector Variable, Up: Selectors cluster Selector Variable ......................... This is provided as a hook for the name of the local cluster. This can be used to decide which servers to use for copies of replicated filesystems. `${cluster}' defaults to the value of `${domain}' unless a different value is set with the `-C' command line option.  File: am-utils.info, Node: domain Selector Variable, Next: dollar Selector Variable, Prev: cluster Selector Variable, Up: Selectors domain Selector Variable ........................ The local domain name as specified by the `-d' command line option. *Note host Selector Variable::.  File: am-utils.info, Node: dollar Selector Variable, Next: host Selector Variable, Prev: domain Selector Variable, Up: Selectors dollar Selector Variable ........................ This is a special variable, whose sole purpose is to produce a literal dollar sign in the value of another variable. For example, if you have a remote file system whose name is `/disk$s', you can mount it by setting the remote file system variable as follows: rfs:=/disk${dollar}s  File: am-utils.info, Node: host Selector Variable, Next: hostd Selector Variable, Prev: dollar Selector Variable, Up: Selectors host Selector Variable ...................... The local hostname as determined by gethostname(2). If no domain name was specified on the command line and the hostname contains a period `.' then the string before the period is used as the host name, and the string after the period is assigned to `${domain}'. For example, if the hostname is `styx.doc.ic.ac.uk' then `host' would be `styx' and `domain' would be `doc.ic.ac.uk'. `hostd' would be `styx.doc.ic.ac.uk'.  File: am-utils.info, Node: hostd Selector Variable, Next: karch Selector Variable, Prev: host Selector Variable, Up: Selectors hostd Selector Variable ....................... This resolves to the `${host}' and `${domain}' concatenated with a `.' inserted between them if required. If `${domain}' is an empty string then `${host}' and `${hostd}' will be identical.  File: am-utils.info, Node: karch Selector Variable, Next: os Selector Variable, Prev: hostd Selector Variable, Up: Selectors karch Selector Variable ....................... This is provided as a hook for the kernel architecture. This is used on SunOS 4 and SunOS 5, for example, to distinguish between different `/usr/kvm' volumes. `${karch}' defaults to the "machine" value gotten from uname(2). If the uname(2) system call is not available, the value of `${karch}' defaults to that of `${arch}'. Finally, a different value can be set with the `-k' command line option.  File: am-utils.info, Node: os Selector Variable, Next: osver Selector Variable, Prev: karch Selector Variable, Up: Selectors os Selector Variable .................... The operating system. Like the machine architecture, this is automatically determined at compile time. The operating system name can be displayed by running the command `amd -v'. *Note Supported Platforms::.  File: am-utils.info, Node: osver Selector Variable, Next: full_os Selector Variable, Prev: os Selector Variable, Up: Selectors osver Selector Variable ....................... The operating system version. Like the machine architecture, this is automatically determined at compile time. The operating system name can be displayed by running the command `amd -v'. *Note Supported Platforms::.  File: am-utils.info, Node: full_os Selector Variable, Next: vendor Selector Variable, Prev: osver Selector Variable, Up: Selectors full_os Selector Variable ......................... The full name of the operating system, including its version. This value is automatically determined at compile time. The full operating system name and version can be displayed by running the command `amd -v'. *Note Supported Platforms::.  File: am-utils.info, Node: vendor Selector Variable, Next: key Selector Variable, Prev: full_os Selector Variable, Up: Selectors vendor Selector Variable ........................ The name of the vendor of the operating system. This value is automatically determined at compile time. The name of the vendor can be displayed by running the command `amd -v'. *Note Supported Platforms::. The following selectors are also provided. Unlike the other selectors, they vary for each lookup. Note that when the name from the kernel is expanded prior to a map lookup, these selectors are all defined as empty strings.  File: am-utils.info, Node: key Selector Variable, Next: map Selector Variable, Prev: vendor Selector Variable, Up: Selectors key Selector Variable ..................... The name being resolved. For example, if `/home' is an automount point, then accessing `/home/foo' would set `${key}' to the string `foo'. The key is prefixed by the PREF option set in the parent mount point. The default prefix is an empty string. If the prefix was `blah/' then `${key}' would be set to `blah/foo'.  File: am-utils.info, Node: map Selector Variable, Next: netnumber Selector Variable, Prev: key Selector Variable, Up: Selectors map Selector Variable ..................... The name of the mount map being used.  File: am-utils.info, Node: netnumber Selector Variable, Next: network Selector Variable, Prev: map Selector Variable, Up: Selectors netnumber Selector Variable ........................... This selector is identical to the `in_network' selector function, see *Note in_network Selector Function::. It will match either the name or number of any network interface on which this host is connected to. The names and numbers of all attached interfaces are available from the output of `amd -v'.  File: am-utils.info, Node: network Selector Variable, Next: path Selector Variable, Prev: netnumber Selector Variable, Up: Selectors network Selector Variable ......................... This selector is identical to the `in_network' selector function, see *Note in_network Selector Function::. It will match either the name or number of any network interface on which this host is connected to. The names and numbers of all attached interfaces are available from the output of `amd -v'.  File: am-utils.info, Node: path Selector Variable, Next: wire Selector Variable, Prev: network Selector Variable, Up: Selectors path Selector Variable ...................... The full pathname of the name being resolved. For example `/home/foo' in the example above.  File: am-utils.info, Node: wire Selector Variable, Next: uid Selector Variable, Prev: path Selector Variable, Up: Selectors wire Selector Variable ...................... This selector is identical to the `in_network' selector function, see *Note in_network Selector Function::. It will match either the name or number of any network interface on which this host is connected to. The names and numbers of all attached interfaces are available from the output of `amd -v'.  File: am-utils.info, Node: uid Selector Variable, Next: gid Selector Variable, Prev: wire Selector Variable, Up: Selectors uid Selector Variable ..................... This selector provides the numeric effective user ID (UID) of the user which last accessed an automounted path name. This simple example shows how floppy mounting can be assigned only to machine owners: floppy -type:=pcfs \ uid==2301;host==shekel;dev:=/dev/floppy \ uid==6712;host==titan;dev=/dev/fd0 \ uid==0;dev:=/dev/fd0c \ type:=error The example allows two machine owners to mount floppies on their designated workstations, allows the root user to mount on any host, and otherwise forces an error.  File: am-utils.info, Node: gid Selector Variable, Next: exists Selector Function, Prev: uid Selector Variable, Up: Selectors gid Selector Variable ..................... This selector provides the numeric effective group ID (GID) of the user which last accessed an automounted path name. The following boolean functions are selectors which take an argument ARG. They return a value of true or false, and thus do not need to be compared with a value. Each of these may be negated by prepending `!' to their name.  File: am-utils.info, Node: exists Selector Function, Next: false Selector Function, Prev: gid Selector Variable, Up: Selectors exists Selector Function ........................ If the file listed by ARG exists (via lstat(2)), this function evaluates to true. Otherwise it evaluates to false.  File: am-utils.info, Node: false Selector Function, Next: netgrp Selector Function, Prev: exists Selector Function, Up: Selectors false Selector Function ....................... Always evaluates to false. ARG is ignored.  File: am-utils.info, Node: netgrp Selector Function, Next: netgrpd Selector Function, Prev: false Selector Function, Up: Selectors netgrp Selector Function ........................ If the current host as determined by the value of `${host}' (e.g., short host name) is a member of the netgroup ARG, this selector evaluates to true. Otherwise it evaluates to false. For example, suppose you have a netgroup `ppp-hosts', and for reasons of performance, these have a local `/home' partition, while all other clients on the faster network can access a shared home directory. A common map to use for both might look like the following: home/* netgrp(ppp-hosts);type:=link;fs:=/local/${key} \ !netgrp(ppp-hosts);type:=nfs;rhost:=serv1;rfs:=/remote/${key}  File: am-utils.info, Node: netgrpd Selector Function, Next: in_network Selector Function, Prev: netgrp Selector Function, Up: Selectors netgrpd Selector Function ......................... If the current host as determined by the value of `${hostd}' is a member of the netgroup ARG, this selector evaluates to true. Otherwise it evaluates to false. The `netgrpd' function uses fully-qualified host names (`${hostd}') to match netgroup names, while the `netgrp' function (*note netgrp Selector Function::) uses short host names (`${host}').  File: am-utils.info, Node: in_network Selector Function, Next: true Selector Function, Prev: netgrpd Selector Function, Up: Selectors in_network Selector Function ............................ This selector matches against any network name or number with an optional netmask. First, if the current host has any network interface that is locally attached to the network specified in ARG (either via name or number), this selector evaluates to true. Second, `in_network' supports a network/netmask syntax such as `128.59.16.0/255.255.255.0', `128.59.16.0/24', `128.59.16.0/0xffffff00', or `128.59.16.0/'. Using the last form, Amd will match the specified network number against the default netmasks of each of the locally attached interfaces. If the selector does not match, it evaluates to false. For example, suppose you have two servers that have an exportable `/opt' that smaller clients can NFS mount. The two servers are say, `serv1' on network `foo-net.site.com' and `serv2' on network `123.4.5.0'. You can write a map to be used by all clients that will attempt to mount the closest one as follows: opt in_network(foo-net.site.com);rhost:=serv1;rfs:=/opt \ in_network(123.4.5.0);rhost:=serv2;rfs:=/opt \ rhost:=fallback-server  File: am-utils.info, Node: true Selector Function, Prev: in_network Selector Function, Up: Selectors true Selector Function ...................... Always evaluates to true. ARG is ignored.  File: am-utils.info, Node: Map Options, Prev: Selectors, Up: Location Format Map Options ----------- Options are parsed concurrently with selectors. The difference is that when an option is seen the string following the `:=' is recorded for later use. As a minimum the TYPE option must be specified. Each filesystem type has other options which must also be specified. *Note Filesystem Types::, for details on the filesystem specific options. Superfluous option specifications are ignored and are not reported as errors. The following options apply to more than one filesystem type. * Menu: * addopts Option:: * delay Option:: * fs Option:: * opts Option:: * remopts Option:: * sublink Option:: * type Option::  File: am-utils.info, Node: addopts Option, Next: delay Option, Prev: Map Options, Up: Map Options addopts Option .............. This option adds additional options to default options normally specified in the `/defaults' entry or the defaults of the key entry being processed (*note opts Option::). Normally when you specify `opts' in both the `/defaults' and the map entry, the latter overrides the former completely. But with `addopts' it will append the options and override any conflicting ones. `addopts' also overrides the value of the `remopts' option (*note remopts Option::), which unless specified defaults to the value of `opts'. Options which start with `no' will override those with the same name that do not start with `no' and vice verse. Special handling is given to inverted options such as `soft' and `hard', `bg' and `fg', `ro' and `rw', etc. For example, if the default options specified were opts:=rw,nosuid,intr,rsize=1024,wsize=1024,quota,posix and the ones specified in a map entry were addopts:=grpid,suid,ro,rsize=2048,quota,nointr then the actual options used would be wsize=1024,posix,grpid,suid,ro,rsize=2048,quota,nointr  File: am-utils.info, Node: delay Option, Next: fs Option, Prev: addopts Option, Up: Map Options delay Option ............ The delay, in seconds, before an attempt will be made to mount from the current location. Auxiliary data, such as network address, file handles and so on are computed regardless of this value. A delay can be used to implement the notion of primary and secondary file servers. The secondary servers would have a delay of a few seconds, thus giving the primary servers a chance to respond first.  File: am-utils.info, Node: fs Option, Next: opts Option, Prev: delay Option, Up: Map Options fs Option ......... The local mount point. The semantics of this option vary between filesystems. For NFS and UFS filesystems the value of `${fs}' is used as the local mount point. For other filesystem types it has other meanings which are described in the section describing the respective filesystem type. It is important that this string uniquely identifies the filesystem being mounted. To satisfy this requirement, it should contain the name of the host on which the filesystem is resident and the pathname of the filesystem on the local or remote host. The reason for requiring the hostname is clear if replicated filesystems are considered. If a fileserver goes down and a replacement filesystem is mounted then the "local" mount point "must" be different from that of the filesystem which is hung. Some encoding of the filesystem name is required if more than one filesystem is to be mounted from any given host. If the hostname is first in the path then all mounts from a particular host will be gathered below a single directory. If that server goes down then the hung mount points are less likely to be accidentally referenced, for example when getcwd(3) traverses the namespace to find the pathname of the current directory. The `fs' option defaults to `${autodir}/${rhost}${rfs}'. In addition, `rhost' defaults to the local host name (`${host}') and `rfs' defaults to the value of `${path}', which is the full path of the requested file; `/home/foo' in the example above (*note Selectors::). `${autodir}' defaults to `/a' but may be changed with the `-a' command line option. Sun's automounter defaults to `/tmp_mnt'. Note that there is no `/' between the `${rhost}' and `${rfs}' since `${rfs}' begins with a `/'.  File: am-utils.info, Node: opts Option, Next: remopts Option, Prev: fs Option, Up: Map Options opts Option ........... The options to pass to the mount system call. A leading `-' is silently ignored. The mount options supported generally correspond to those used by mount(8) and are listed below. Some additional pseudo-options are interpreted by Amd and are also listed. Unless specifically overridden, each of the system default mount options applies. Any options not recognized are ignored. If no options list is supplied the string `rw,defaults' is used and all the system default mount options apply. Options which are not applicable for a particular operating system are silently ignored. For example, only 4.4BSD is known to implement the `compress' and `spongy' options. `acdirmax=N' Set the maximum directory attribute cache timeout to N. `acdirmin=N' Set the minimum directory attribute cache timeout to N. `acregmax=N' Set the maximum file attribute cache timeout to N. `acregmin=N' Set the minimum file attribute cache timeout to N. `actimeo=N' Set the overall attribute cache timeout to N. `auto' `ignore' Ignore this mount by df(1). `cache' Allow data to be cached from a remote server for this mount. `compress' Use NFS compression protocol. `defperm' Ignore the permission mode bits, and default file permissions to 0555, UID 0, and GID 0. Useful for CD-ROMs formatted as ISO-9660. `dev' Allow local special devices on this filesystem. `dumbtimr' Turn off the dynamic retransmit timeout estimator. This may be useful for UDP mounts that exhibit high retry rates, since it is possible that the dynamically estimated timeout interval is too short. `extatt' Enable extended attributes in ISO-9660 file systems. `fsid' Set ID of filesystem. `gens' Enable generations in ISO-9660 file systems. Generations allow you to see all versions of a given file. `grpid' Use BSD directory group-id semantics. `int' `intr' Allow keyboard interrupts on hard mounts. `lock' Use the NFS locking protocol (default) `loop' Support loop device mounts for CDFS (currently only on Linux). With this option, you can mount ISO-9660 files as if they were normal CD-ROMs: sw71 type:=cdfs;addopts:=loop;dev:=/misc/rh71cd.iso;rfs:=/mnt/RPMS `multi' Perform multi-component lookup on files. `maxgroups' Set the maximum number of groups to allow for this mount. `nfsv3' Use NFS Version 3 for this mount. `noac' Turn off the attribute cache. `noauto' This option is used by the mount command in `/etc/fstab' or `/etc/vfstab' and means not to mount this file system when mount -a is used. `nocache' Do not allow data to be cached from a remote server for this mount. `noconn' Don't make a connection on datagram transports. `nocto' No close-to-open consistency. `nodefperm' Do not ignore the permission mode bits. Useful for CD-ROMS formatted as ISO-9660. `nodev' `nodevs' Don't allow local special devices on this filesystem. `noexec' Don't allow program execution. `noint' Do not allow keyboard interrupts for this mount `nolock' Do not use the NFS locking protocol `nomnttab' This option is used internally to tell Amd that a Solaris 8 system using mntfs is in use. `norrip' Turn off using of the Rock Ridge Interchange Protocol (RRIP) extensions to ISO-9660. `nosub' Disallow mounts beneath this mount. `nosuid' Don't allow set-uid or set-gid executables on this filesystem. `noversion' Strip the extension `;#' from the version string of files recorded on an ISO-9660 CD-ROM. `optionstr' Under Solaris 8, provide the kernel a string of options to parse and show as part of the special in-kernel mount file system. `overlay' Overlay this mount on top of an existing mount, if any. `pgthresh=N' Set the paging threshold to N kilobytes. `port=N' Set the NFS port to N. `posix' Turn on POSIX static pathconf for mounts. `proplist' Support property lists (ACLs) for this mount, useful primarily for DU-4.0. `proto=S' Use transport protocol S for NFS (can be `"tcp"' or `"udp"'). `quota' Enable quota checking on this mount. `rdonly' `ro' Mount this filesystem readonly. `resvport' Use a reserved port (smaller than 1024) for remote NFS mounts. Most systems assume that, but some allow for mounts to occur on non-reserved ports. This causes problems when such a system tries to NFS mount one that requires reserved ports. It is recommended that this option always be on. `retrans=n' The number of NFS retransmits made before a user error is generated by a `soft' mounted filesystem, and before a `hard' mounted filesystem reports `NFS server "yoyo" not responding still trying'. `retry' Set the NFS retry counter. `rrip' Uses the Rock Ridge Interchange Protocol (RRIP) extensions to ISO-9660. `rsize=N' The NFS read packet size. You may need to set this if you are using NFS/UDP through a gateway or a slow link. `rw' Allow reads and writes on this filesystem. `soft' Give up after "retrans" retransmissions. `spongy' Like `soft' for status requests, and `hard' for data transfers. `suid' Allow set-uid programs on this mount. `symttl' Turn off the symbolic link cache time-to-live. `sync' Perform synchronous filesystem operations on this mount. `tcp' Use TCP/IP instead of UDP/IP, ignored if the NFS implementation does not support TCP/IP mounts. `timeo=N' The NFS timeout, in tenth-seconds, before a request is retransmitted. `vers=N' Use NFS protocol version number N (can be 2 or 3). `wsize=N' The NFS write packet size. You may need to set this if you are using NFS/UDP through a gateway or a slow link. The following options are implemented by Amd, rather than being passed to the kernel. `nounmount' Configures the mount so that its time-to-live will never expire. This is also the default for some filesystem types. `ping=N' The interval, in seconds, between keep-alive pings. When four consecutive pings have failed the mount point is marked as hung. This interval defaults to 30 seconds. If the ping interval is less than zero, no pings are sent and the host is assumed to be always up. By default, pings are not sent for an NFS/TCP mount. `retry=N' The number of times to retry the mount system call. `utimeout=N' The interval, in seconds, by which the mount's time-to-live is extended after an unmount attempt has failed. In fact the interval is extended before the unmount is attempted to avoid thrashing. The default value is 120 seconds (two minutes) or as set by the `-w' command line option.  File: am-utils.info, Node: remopts Option, Next: sublink Option, Prev: opts Option, Up: Map Options remopts Option .............. This option has the same use as `${opts}' but applies only when the remote host is on a non-local network. For example, when using NFS across a gateway it is often necessary to use smaller values for the data read and write sizes. This can simply be done by specifying the small values in REMOPTS. When a non-local host is accessed, the smaller sizes will automatically be used. Amd determines whether a host is local by examining the network interface configuration at startup. Any interface changes made after Amd has been started will not be noticed. The likely effect will be that a host may incorrectly be declared non-local. Unless otherwise set, the value of `${remopts}' is the same as the value of `${opts}'.  File: am-utils.info, Node: sublink Option, Next: type Option, Prev: remopts Option, Up: Map Options sublink Option .............. The subdirectory within the mounted filesystem to which the reference should point. This can be used to prevent duplicate mounts in cases where multiple directories in the same mounted filesystem are used.  File: am-utils.info, Node: type Option, Prev: sublink Option, Up: Map Options type Option ........... The filesystem type to be used. *Note Filesystem Types::, for a full description of each type.  File: am-utils.info, Node: Amd Command Line Options, Next: Filesystem Types, Prev: Mount Maps, Up: Top Amd Command Line Options ************************ Many of Amd's parameters can be set from the command line. The command line is also used to specify automount points and maps. The general format of a command line is amd [options] [{ directory map-name [-map-options] } ...] For each directory and map-name given or specified in the `amd.conf' file, Amd establishes an automount point. The "map-options" may be any sequence of options or selectors--*note Location Format::. The "map-options" apply only to Amd's mount point. `type:=toplvl;cache:=mapdefault;fs:=${map}' is the default value for the map options. Default options for a map are read from a special entry in the map whose key is the string `/defaults'. When default options are given they are prepended to any options specified in the mount-map locations as explained in *Note Map Defaults::. The "options" are any combination of those listed below. Once the command line has been parsed, the automount points are mounted. The mount points are created if they do not already exist, in which case they will be removed when Amd exits. Finally, Amd disassociates itself from its controlling terminal and forks into the background. Note: Even if Amd has been built with `-DDEBUG' (via `configure --enable-debug'), it will still background itself and disassociate itself from the controlling terminal. To use a debugger it is necessary to specify `-D nodaemon' on the command line. However, even with all of this, mounts and unmounts are performed in the background, and Amd will always fork before doing them. Therefore, debugging what happens closely during un/mounts is more challenging. _All_ of Amd's command options (save `-F' and `-T') can be specified in the `amd.conf' file. *Note Amd Configuration File::. If Amd is invoked without any command line options, it will default to using the configuration file `/etc/amd.conf', if one exists. * Menu: * -a Option:: Automount directory. * -c Option:: Cache timeout interval. * -d Option:: Domain name. * -k Option:: Kernel architecture. * -l Option:: Log file. * -n Option:: Hostname normalization. * -o Option:: Operating system version. * -p Option:: Output process id. * -r Option:: Restart existing mounts. * -t Option:: Kernel RPC timeout. * -v Option:: Version information. * -w Option:: Wait interval after failed unmount. * -x Option:: Log options. * -y Option:: NIS domain. * -C-Option:: Cluster name. * -D-Option:: Debug flags. * -F Option:: Amd configuration file. * -H Option:: Show brief help. * -O-Option:: Operating system name. * -S Option:: Lock executable pages in memory. * -T-Option:: Set tag for configuration file.  File: am-utils.info, Node: -a Option, Next: -c Option, Prev: Amd Command Line Options, Up: Amd Command Line Options `-a' DIRECTORY ============== Specifies the default mount directory. This option changes the variable `${autodir}' which otherwise defaults to `/a'. For example, some sites prefer `/amd' or `/n'. amd -a /amd ...  File: am-utils.info, Node: -c Option, Next: -d Option, Prev: -a Option, Up: Amd Command Line Options `-c' CACHE-INTERVAL =================== Selects the period, in seconds, for which a name is cached by Amd. If no reference is made to the volume in this period, Amd discards the volume name to filesystem mapping. Once the last reference to a filesystem has been removed, Amd attempts to unmount the filesystem. If the unmount fails the interval is extended by a further period as specified by the `-w' command line option or by the `utimeout' mount option. The default "cache-interval" is 300 seconds (five minutes).  File: am-utils.info, Node: -d Option, Next: -k Option, Prev: -c Option, Up: Amd Command Line Options `-d' DOMAIN =========== Specifies the host's domain. This sets the internal variable `${domain}' and affects the `${hostd}' variable. If this option is not specified and the hostname already contains the local domain then that is used, otherwise the default value of `${domain}' is `unknown.domain'. For example, if the local domain was `doc.ic.ac.uk', Amd could be started as follows: amd -d doc.ic.ac.uk ...  File: am-utils.info, Node: -k Option, Next: -l Option, Prev: -d Option, Up: Amd Command Line Options `-k' KERNEL-ARCHITECTURE ======================== Specifies the kernel architecture of the system. This is usually the output of `uname -m' (the "machine" value gotten from uname(2)). If the uname(2) system call is not available, the value of `${karch}' defaults to that of `${arch}'. The only effect of this option is to set the variable `${karch}'. This option would be used as follows: amd -k `arch -k` ...  File: am-utils.info, Node: -l Option, Next: -n Option, Prev: -k Option, Up: Amd Command Line Options `-l' LOG-OPTION =============== Selects the form of logging to be made. Several special "log-options" are recognized. 1. If "log-option" is the string `syslog', Amd will use the syslog(3) mechanism. If your system supports syslog facilities, then the default facility used is `LOG_DAEMON'. 2. When using syslog, if you wish to change the facility, append its name to the log option name, delimited by a single colon. For example, if "log-options" is the string `syslog:local7' then Amd will log messages via syslog(3) using the `LOG_LOCAL7' facility. If the facility name specified is not recognized, Amd will default to `LOG_DAEMON'. Note: while you can use any syslog facility available on your system, it is generally a bad idea to use those reserved for other services such as `kern', `lpr', `cron', etc. 3. If "log-option" is the string `/dev/stderr', Amd will use standard error, which is also the default target for log messages. To implement this, Amd simulates the effect of the `/dev/fd' driver. Any other string is taken as a filename to use for logging. Log messages are appended to the file if it already exists, otherwise a new file is created. The file is opened once and then held open, rather than being re-opened for each message. Normally, when long-running daemons hold an open file descriptor on a log file, it is impossible to "rotate" the log file and compress older logs on a daily basis. The daemon needs to be told to discard (via close(2)) its file handle, and re-open the log file. This is done using `amq -l' log-option. *Note Amq -l option::. If the `syslog' option is specified but the system does not support syslog or if the named file cannot be opened or created, Amd will use standard error. Error messages generated before Amd has finished parsing the command line are printed on standard error. Since Amd tends to generate a lot of logging information (especially if debugging was turned on), and due to it being an important program running on the system, it is usually best to log to a separate disk file. In that case Amd would be started as follows: amd -l /var/log/amd ...  File: am-utils.info, Node: -n Option, Next: -o Option, Prev: -l Option, Up: Amd Command Line Options `-n' ==== Normalizes the remote hostname before using it. Normalization is done by replacing the value of `${rhost}' with the (generally fully qualified) primary name returned by a hostname lookup. This option should be used if several names are used to refer to a single host in a mount map.  File: am-utils.info, Node: -o Option, Next: -p Option, Prev: -n Option, Up: Amd Command Line Options `-o' OP-SYS-VER =============== Overrides the compiled-in version number of the operating system, with OP-SYS-VER. Useful when the built-in version is not desired for backward compatibility reasons. For example, if the built-in version is `2.5.1', you can override it to `5.5.1', and use older maps that were written with the latter in mind.  File: am-utils.info, Node: -p Option, Next: -r Option, Prev: -o Option, Up: Amd Command Line Options `-p' ==== Causes Amd's process id to be printed on standard output. This can be redirected to a suitable file for use with kill: amd -p > /var/run/amd.pid ... This option only has an affect if Amd is running in daemon mode. If Amd is started with the `-D nodaemon' debug flag, this option is ignored.  File: am-utils.info, Node: -r Option, Next: -t Option, Prev: -p Option, Up: Amd Command Line Options `-r' ==== Tells Amd to restart existing mounts (*note Inheritance Filesystem::).  File: am-utils.info, Node: -t Option, Next: -v Option, Prev: -r Option, Up: Amd Command Line Options `-t' TIMEOUT.RETRANSMIT ======================= Specifies the RPC "timeout" interval and the "retransmit" counter used by the kernel to communicate to Amd. These are used to set the `timeo' and `retrans' mount options, respectively. The default timeout is 0.8 seconds, and the default number of retransmissions is 11. Amd relies on the kernel RPC retransmit mechanism to trigger mount retries. The values of these parameters change the overall retry interval. Too long an interval gives poor interactive response; too short an interval causes excessive retries.  File: am-utils.info, Node: -v Option, Next: -w Option, Prev: -t Option, Up: Amd Command Line Options `-v' ==== Print version information on standard error and then exit. The output is of the form: Copyright (c) 1997-1999 Erez Zadok Copyright (c) 1990 Jan-Simon Pendry Copyright (c) 1990 Imperial College of Science, Technology & Medicine Copyright (c) 1990 The Regents of the University of California. am-utils version 6.0a15 (build 61). Built by ezk@cs.columbia.edu on date Wed Oct 22 15:21:03 EDT 1997. cpu=sparc (big-endian), arch=sun4, karch=sun4u. full_os=solaris2.5.1, os=sos5, osver=5.5.1, vendor=sun. Map support for: root, passwd, union, nisplus, nis, ndbm, file, error. AMFS: nfs, link, nfsx, nfsl, host, linkx, program, union, inherit, ufs, lofs, hsfs, pcfs, auto, direct, toplvl, error. FS: autofs, cachefs, cdfs, lofs, nfs, nfs3, pcfs, tfs, tmpfs, ufs. Network 1: wire="mcl-lab-net.cs.columbia.edu" (netnumber=128.59.13). Network 2: wire="14-net.cs.columbia.edu" (netnumber=128.59.14). Network 3: wire="old-net.cs.columbia.edu" (netnumber=128.59.16). The information includes the version number, number of times Amd was compiled on the local system, release date and name of the release. Following come the cpu type, byte ordering, and the architecture and kernel architecture as `${arch}' and `${karch}', respectively. The next line lists the operating system full name, short name, version, and vendor. These four values correspond to the variables `${full_os}', `${os}', `${osver}', and `${vendor}', respectively. *Note Supported Platforms::. Then come a list of map types supported, filesystems internally supported by Amd (AMFS), and generic filesystems available (FS). Finally all known networks (if any) of this host are listed by name and number. They are available via the variables `${wire}' or `${network}', and `${netnumber}' (*note Selectors::) or the `in_network' selector function (*note in_network Selector Function::).  File: am-utils.info, Node: -w Option, Next: -x Option, Prev: -v Option, Up: Amd Command Line Options `-w' WAIT-TIMEOUT ================= Selects the interval in seconds between unmount attempts after the initial time-to-live has expired. This defaults to 120 seconds (two minutes).  File: am-utils.info, Node: -x Option, Next: -y Option, Prev: -w Option, Up: Amd Command Line Options `-x' OPTS ========= Specifies the type and verbosity of log messages. "opts" is a comma separated list selected from the following options: `fatal' Fatal errors `error' Non-fatal errors `user' Non-fatal user errors `warn' Recoverable errors `warning' Alias for `warn' `info' Information messages `map' Mount map usage `stats' Additional statistics `all' All of the above Initially a set of default logging flags is enabled. This is as if `-x all,nomap,nostats' had been selected. The command line is parsed and logging is controlled by the `-x' option. The very first set of logging flags is saved and can not be subsequently disabled using Amq. This default set of options is useful for general production use. The `info' messages include details of what is mounted and unmounted and when filesystems have timed out. If you want to have the default set of messages without the `info' messages then you simply need `-x noinfo'. The messages given by `user' relate to errors in the mount maps, so these are useful when new maps are installed. The following table lists the syslog priorities used for each of the message types. `fatal' `LOG_CRIT' `error' `LOG_ERR' `user' `LOG_WARNING' `warning' `LOG_WARNING' `info' `LOG_INFO' `debug' `LOG_DEBUG' `map' `LOG_DEBUG' `stats' `LOG_INFO' The options can be prefixed by the string `no' to indicate that this option should be turned off. For example, to obtain all but `info' messages the option `-x all,noinfo' would be used. If Amd was built with debugging enabled the `debug' option is automatically enabled regardless of the command line options.  File: am-utils.info, Node: -y Option, Next: -C-Option, Prev: -x Option, Up: Amd Command Line Options `-y' NIS-DOMAIN =============== Selects an alternate NIS domain. This is useful for debugging and cross-domain shared mounting. If this flag is specified, Amd immediately attempts to bind to a server for this domain.  File: am-utils.info, Node: -C-Option, Next: -D-Option, Prev: -y Option, Up: Amd Command Line Options `-C' CLUSTER-NAME ================= Specifies the name of the cluster of which the local machine is a member. The only effect is to set the variable `${cluster}'. The "cluster-name" is will usually obtained by running another command which uses a database to map the local hostname into a cluster name. `${cluster}' can then be used as a selector to restrict mounting of replicated data. If this option is not given, `${cluster}' has the same value as `${domain}'. This would be used as follows: amd -C `clustername` ...  File: am-utils.info, Node: -D-Option, Next: -F Option, Prev: -C-Option, Up: Amd Command Line Options `-D' OPTS ========= Controls the verbosity and coverage of the debugging trace; "opts" is a comma separated list of debugging options. The `-D' option is only available if Amd was compiled with `-DDEBUG', or configured with `configure --enable-debug'. The memory debugging facilities (`mem') are only available if Amd was compiled with `-DDEBUG_MEM' (in addition to `-DDEBUG'), or configured with `configure --enable-debug=mem'. The most common options to use are `-D trace' and `-D test' (which turns on all the useful debug options). As usual, every option can be prefixed with `no' to turn it off. `all' all options `amq' register for amq `daemon' enter daemon mode `fork' fork server `full' program trace `hrtime' print high resolution time stamps (only if syslog(3) is not used) `info' info service specific debugging (hesiod, nis, etc.) In the case of hesiod maps, turns on the hesiod RES_DEBUG internal debugging option. `mem' trace memory allocations `mtab' use local `./mtab' file `readdir' show readdir progress `str' debug string munging `test' full debug but no daemon `trace' trace RPC protocol and NFS mount arguments `xdrtrace' trace XDR routines You may also refer to the program source for a more detailed explanation of the available options.  File: am-utils.info, Node: -F Option, Next: -H Option, Prev: -D-Option, Up: Amd Command Line Options `-F' CONF-FILE ============== Specify an Amd configuration file CONF-FILE to use. For a description of the format and syntax, *note Amd Configuration File::. This configuration file is used to specify any options in lieu of typing many of them on the command line. The `amd.conf' file includes directives for every command line option Amd has, and many more that are only available via the configuration file facility. The configuration file specified by this option is processed after all other options had been processed, regardless of the actual location of this option on the command line.  File: am-utils.info, Node: -H Option, Next: -O-Option, Prev: -F Option, Up: Amd Command Line Options `-H' ==== Print a brief help and usage string.  File: am-utils.info, Node: -O-Option, Next: -S Option, Prev: -H Option, Up: Amd Command Line Options `-O' OP-SYS-NAME ================ Overrides the compiled-in name of the operating system, with OP-SYS-NAME. Useful when the built-in name is not desired for backward compatibility reasons. For example, if the build in name is `sunos5', you can override it to the old name `sos5', and use older maps which were written with the latter in mind.  File: am-utils.info, Node: -S Option, Next: -T-Option, Prev: -O-Option, Up: Amd Command Line Options `-S' ==== Do _not_ lock the running executable pages of Amd into memory. To improve Amd's performance, systems that support the plock(3) or mlockall(2) call lock the Amd process into memory. This way there is less chance the operating system will schedule, page out, and swap the Amd process as needed. This tends to improve Amd's performance, at the cost of reserving the memory used by the Amd process (making it unavailable for other processes). If this behavior is not desired, use the `-S' option.  File: am-utils.info, Node: -T-Option, Prev: -S Option, Up: Amd Command Line Options `-T' TAG ======== Specify a tag to use with `amd.conf'. All map entries tagged with TAG will be processed. Map entries that are not tagged are always processed. Map entries that are tagged with a tag other than TAG will not be processed.  File: am-utils.info, Node: Filesystem Types, Next: Amd Configuration File, Prev: Amd Command Line Options, Up: Top Filesystem Types **************** To mount a volume, Amd must be told the type of filesystem to be used. Each filesystem type typically requires additional information such as the fileserver name for NFS. From the point of view of Amd, a "filesystem" is anything that can resolve an incoming name lookup. An important feature is support for multiple filesystem types. Some of these filesystems are implemented in the local kernel and some on remote fileservers, whilst the others are implemented internally by Amd. The two common filesystem types are UFS and NFS. Four other user accessible filesystems (`link', `program', `auto' and `direct') are also implemented internally by Amd and these are described below. There are two additional filesystem types internal to Amd which are not directly accessible to the user (`inherit' and `error'). Their use is described since they may still have an effect visible to the user. * Menu: * Network Filesystem:: A single NFS filesystem. * Network Host Filesystem:: NFS mount a host's entire export tree. * Network Filesystem Group:: An atomic group of NFS filesystems. * Unix Filesystem:: Native disk filesystem. * Caching Filesystem:: Caching from remote server filesystem. * CD-ROM Filesystem:: ISO9660 CD ROM. * Loopback Filesystem:: Local loopback-mount filesystem. * Memory/RAM Filesystem:: A memory or RAM-based filesystem. * Null Filesystem:: 4.4BSD's loopback-mount filesystem. * Floppy Filesystem:: MS-DOS Floppy filesystem. * Translucent Filesystem:: The directory merging filesystem. * Shared Memory+Swap Filesystem:: Sun's tmpfs filesystem. * User ID Mapping Filesystem:: 4.4BSD's umapfs filesystem. * Program Filesystem:: Generic Program mounts. * Symbolic Link Filesystem:: Local link. * Symbolic Link Filesystem II:: Local link referencing existing filesystem. * NFS-Link Filesystem:: Link if path exists, NFS otherwise. * Automount Filesystem:: * Direct Automount Filesystem:: * Union Filesystem:: * Error Filesystem:: * Top-level Filesystem:: * Autofs Filesystem:: Sun's kernel-based automounter filesystem. * Root Filesystem:: * Inheritance Filesystem::  File: am-utils.info, Node: Network Filesystem, Next: Network Host Filesystem, Prev: Filesystem Types, Up: Filesystem Types Network Filesystem (`nfs') ========================== The "nfs" (`type:=nfs') filesystem type provides access to Sun's NFS. The following options must be specified: `rhost' the remote fileserver. This must be an entry in the hosts database. IP addresses are not accepted. The default value is taken from the local host name (`${host}') if no other value is specified. `rfs' the remote filesystem. If no value is specified for this option, an internal default of `${path}' is used. NFS mounts require a two stage process. First, the "file handle" of the remote file system must be obtained from the server. Then a mount system call must be done on the local system. Amd keeps a cache of file handles for remote file systems. The cache entries have a lifetime of a few minutes. If a required file handle is not in the cache, Amd sends a request to the remote server to obtain it. Amd "does not" wait for a response; it notes that one of the locations needs retrying, but continues with any remaining locations. When the file handle becomes available, and assuming none of the other locations was successfully mounted, Amd will retry the mount. This mechanism allows several NFS filesystems to be mounted in parallel. The first one which responds with a valid file handle will be used. An NFS entry might be: jsp host!=charm;type:=nfs;rhost:=charm;rfs:=/home/charm;sublink:=jsp The mount system call and any unmount attempts are always done in a new task to avoid the possibility of blocking Amd.