type=page
status=published
title=list-nodes-ssh
next=list-password-aliases.html
prev=list-nodes-dcom.html
~~~~~~

= list-nodes-ssh

[[list-nodes-ssh-1]][[GSRFM00189]][[list-nodes-ssh]]

== list-nodes-ssh

Lists all {productName} nodes that support communication over SSH in a domain

[[sthref1727]]

=== Synopsis

[source]
----
asadmin [asadmin-options] list-nodes-ssh [--help]
[--long={false|true}]
----

[[sthref1728]]

=== Description

The `list-nodes-ssh` subcommand lists all {productName} nodes that
support communication over secure shell (SSH) in a domain.

[NOTE]
====
To list all nodes in a domain regardless of the type of the node, run
the link:list-nodes.html#list-nodes-1[`list-nodes`(1)] subcommand.
====

By default, the subcommand displays the following information for each
node that is listed:

* The name of the node
* The type of the node, which is `SSH`
* The name of the host that the node represents

The `--long` option of the subcommand specifies whether the nodes are
listed in long format. In long format, the following additional
information about each node is displayed:

* The path to the parent of the base installation directory of
{productName} on the host that the node represents
* A comma-separated list of the names of the {productName} instances
that reside on the node

If the `--terse` option of the
link:asadmin.html#asadmin-1m[`asadmin`(1M)] utility is `true` and the
`--long` option of the subcommand is `false`, the subcommand lists only
the name of each node.

This subcommand is supported in remote mode only.

[[sthref1729]]

=== Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--long`::
`-l`::
  Specifies whether the nodes are listed in long format.
  Possible values are as follows:

  `true`;;
    The nodes are listed in long format.
  `false`;;
    The nodes are listed in short format (default).

[[sthref1730]]

=== Examples

[[GSRFM697]][[sthref1731]]

==== Example 1   Listing {productName} Nodes

This example displays the name, type, and host for all {productName}
nodes that support communication over SSH in a domain.

[source]
----
asadmin> list-nodes-ssh
sj02  SSH  sj02.example.com
sj01  SSH  sj01.example.com
Command list-nodes-ssh executed successfully.
----

[[GSRFM698]][[sthref1732]]

==== Example 2   Listing Only the Names of {productName} Nodes

This example uses the `--terse` option of the `asadmin` utility to list
only the names of the {productName} nodes that support communication
over SSH in a domain.

[source]
----
asadmin> list-nodes-ssh --terse=true
sj02
sj01
----

[[GSRFM699]][[sthref1733]]

==== Example 3   Listing {productName} Nodes in Long Format

This example lists the {productName} nodes that support
communication over SSH in a domain in long format.

[source]
----
asadmin> list-nodes-ssh --long=true
NODE NAME   TYPE   NODE HOST          INSTALL DIRECTORY    REFERENCED BY
sj02        SSH    sj02.example.com   /export/glassfish7   pmd-i-sj02, yml-i-sj02
sj01        SSH    sj01.example.com   /export/glassfish7   pmd-i-sj01, yml-i-sj01
Command list-nodes-ssh executed successfully.
----

[[sthref1734]]

=== Exit Status

0::
  command executed successfully
1::
  error in executing the command

[[sthref1735]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:create-node-dcom.html#create-node-dcom-1[`create-node-dcom`(1)],
link:create-node-config.html#create-node-config-1[`create-node-config`(1)],
link:create-node-ssh.html#create-node-ssh-1[`create-node-ssh`(1)],
link:delete-node-config.html#delete-node-config-1[`delete-node-config`(1)],
link:delete-node-dcom.html#delete-node-dcom-1[`delete-node-dcom`(1)],
link:delete-node-ssh.html#delete-node-ssh-1[`delete-node-ssh`(1)],
link:list-nodes.html#list-nodes-1[`list-nodes`(1)],
link:list-nodes-config.html#list-nodes-config-1[`list-nodes-config`(1)],
link:list-nodes-dcom.html#list-nodes-dcom-1[`list-nodes-dcom`(1)]


