NAME¶
nodeattr - query genders file
SYNOPSIS¶
nodeattr [-f genders] [-q | -c | -n | -s] [-X exclude_query] query
nodeattr [-f genders] [-q | -c | -n | -s] -A
nodeattr [-f genders] [-v] [node] attr[=val]
nodeattr [-f genders] -Q [node] query
nodeattr [-f genders] -V [-U] attr
nodeattr [-f genders] -l [node]
nodeattr [-f genders] -k
nodeattr [-f genders] -d genders
nodeattr [-f genders] --expand
nodeattr [-f genders] --compress
DESCRIPTION¶
When invoked with the
-q ,
-c ,
-n , or
-s
arguments,
nodeattr reads the genders file and outputs a list of nodes
that match the specified query. The nodes are listed in hostlist format, comma
separated lists, newline separated lists, or space separated lists
respectively. Genders queries will query the genders database for a set of
nodes based on the union, intersection, difference, or complement of genders
attributes and values. The set operation union is represented by two pipe
symbols ('||'), intersection by two ampersand symbols ('&&'),
difference by two minus symbols ('--'), and complement by a tilde ('~').
Parentheses may be used to change the order of operations. The
-X
argument and query can be used to exclude nodes from the resulting output. A
query can be replaced with the
-A option to cause
nodeattr to
print all the nodes listed in the genders database.
When called with a node name (optional) and attribute name,
nodeattr
returns
0 to the environment if the node has the attribute; else
1. If
-v is present, the attribute name and any value (see
below) is printed on the standard output. If a node name is not specified, the
local host is assumed.
When called with the
-Q argument,
nodeattr will check if the node
name (optional) is met by the attribute and value conditions specified in the
query. If the conditions are met,
nodeattr returns
0 to the
environment; else
1. The query format is identical to the format listed
above. If a node name is not specified, the local host is assumed.
The
-V option causes
nodeattr to print all of the values that
exist for a particular attribute. Also specifing
-U with
-V
causes
nodeattr to print out only unique values for the particular
attribute.
The
-l option causes
nodeattr to print the attributes of the
specified node. If no node is listed, all attributes in the genders file are
listed.
The
-k option checks the genders file for parse errors and proper
formatting. If errors are found, information about the error will be output to
standard error.
Nodeattr will always check the default genders file, but a different
genders file can be specified with the
-f option.
The
-d option allows the specified genders database to be compared to the
filename indicated by the
-f option or the default genders database.
The differences contained in the specified database will be output to standard
error.
The
--expand option will take a genders database, expand all hostranges,
and output a new genders database. The subsequent database will be identical
to the first, but every node will be listed on a separate line. This option
may be useful for debugging or determining the difference between databases.
The
--compress is opposite of the
--expand option. It will output
a new identical genders database with hostranges of nodes with identical
attributes. Depending on the setup of your genders database, the resulting
database may be longer or shorter. This option may be useful as a beginning
step to compressing an existing genders database.
Attribute names may optionally appear in the genders file with an equal sign
followed by a value.
Nodeattr ignores these values except when the
-v option requests that the value, if any, be displayed; and when an
attribute is specified on the command line with a value, in which case only an
attribute with the specified value in the genders file will match.
EXAMPLES¶
Retrieve a comma separated list of all login nodes:
- nodeattr -c login
Retrieve a hostlist formatted list of all login nodes:
- nodeattr -q login
Retrieve a comma separated list of nodes with 4 cpus:
- nodeattr -c cpus=4
Retrieve a comma separated list of all login and management nodes:
- nodeattr -c "login||mgmt"
Retrieve a comma separated list of all login nodes with 4 cpus:
- nodeattr -c "login&&cpus=4"
Retrieve a comma separated list of all nodes that are not login or management
nodes:
- nodeattr -c "~(login||mgmt)"
To use nodeattr with pdsh to run a command on all fddi nodes:
- pdsh -w`nodeattr -c fddi` command
To use nodeattr in a ksh script to collect a list of users on login nodes:
- for i in `nodeattr -n login`; do rsh $i who; done
To verify whether or not this node is a head node:
- nodeattr head && echo yes
To verify whether or not this node is a head node and ntpserver:
- nodeattr -Q "head&&ntpserver" && echo yes
FILES¶
/etc/genders
SEE ALSO¶
libgenders(3)