Provided by: genders_1.27-3-3_amd64 bug

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, 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 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 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.  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 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 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 "different" 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 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)