nodeattr - query genders file
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 nodeattr [-f genders] --compress-hosts
NODEATTR(1) NODEATTR NODEATTR(1)
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
nodeattr [-f genders] --compress-hosts
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. The -q
form is returned by default. Genders queries will query the genders
database for a set of nodes based on the union, intersection, differ-
ence, or complement of genders attributes and values. The set opera-
tion 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 envi-
ronment; 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 all of the attributes of the
specified node or list of nodes. 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 for-
matting. If errors are found, information about the error will be out-
put 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 data-
base. The differences contained in the specified database will be out-
put to standard error. 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.
For --expand --compress --compress-attrs --compress-hosts see HOSTRANGE
EXPANSION AND COMPRESSION below.
HOSTRANGE EXPANSION AND COMPRESSION
The --expand option will take a genders database, expand all hos-
tranges, and output a new genders database. The subsequent database
will be identical to the first, but every node will be listed on a sep-
arate line. This option may be useful for debugging or determining the
difference between databases.
The --compress option is the 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.
The --compress-hosts option is similar to the --compress option. With
--compress a given attr only appears once. With --compress-hosts a
given node only appears once. The --compress-hosts option combines
attributes for each node first and then groups nodes with identical
attribute sets rather than creating a group of nodes for each attribute
and then merging common groups. This is useful for identifying "dif-
ferent" nodes. For example:
for the genders file:
cluster[1-20] attr1,attr2
cluster10 attr3
cluster20 attr3
cluster[2,5,10] attr4
cluster[7,20] attr5
The nodeattr --compress command produces:
cluster[2,5,10] attr4
cluster[10,20] attr3
cluster[7,20] attr5
cluster[1-20] attr1,attr2
Where nodeattr --compress-hosts produces:
cluster[1,3-4,6,8-9,11-19] attr1,attr2
cluster[2,5] attr1,attr2,attr4
cluster10 attr1,attr2,attr3,attr4
cluster20 attr1,attr2,attr3,attr5
cluster7 attr1,attr2,attr5
In the --compress output, cluster7 appears in the third and fourth
lines because it is a member of ranges with attr1,attr2 and ranges with
attr5. In the --compress-hosts output, cluster7 appears on a new line
because there are no other nodes with the same combination of
attributes.
The --compress-attrs option is identical to --compress . It was added
for consistency when --compress-hosts was added.
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 man-
agement 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
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+---------------+-----------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+-----------------------+
|Availability | library/libgenders |
+---------------+-----------------------+
|Stability | Pass-through volatile |
+---------------+-----------------------+
SEE ALSO
libgenders(3)
NOTES
Source code for open source software components in Oracle Solaris can
be found at https://www.oracle.com/downloads/opensource/solaris-source-
code-downloads.html.
This software was built from source available at
https://github.com/oracle/solaris-userland. The original community
source was downloaded from https://github.com/chaos/genders/ar-
chive/refs/tags/genders-1-28-1.tar.gz.
Further information about this software can be found on the open source
community website at https://github.com/chaos/genders.
LLNL August 2003 NODEATTR(1)