Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

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

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)