type=page
status=published
title=list-clusters
next=list-commands.html
prev=list-batch-runtime-configuration.html
~~~~~~

list-clusters
=============

[[list-clusters-1]][[GSRFM00153]][[list-clusters]]

list-clusters
-------------

Lists existing clusters in a domain

[[sthref1371]]

=== Synopsis

[source]
----
asadmin [asadmin-options] list-clusters [--help]
[target]
----

[[sthref1372]]

=== Description

The `list-clusters` subcommand lists existing clusters in a domain. The
list can be filtered by cluster, instance, node, or configuration. For
each cluster that is listed, the subcommand indicates whether the
cluster is running.

This subcommand is supported in remote mode only.

[[sthref1373]]

=== 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.

[[sthref1374]]

=== Operands

target::
  Filters the list of clusters by specifying the target for which the
  clusters are to be listed. Valid values are as follows:

  `domain`;;
    Lists all clusters in the domain (default).
  cluster-name;;
    Lists only the specified cluster.
  instance-name;;
    Lists the cluster of which the specified instance is a member.
  node-name;;
    Lists the clusters that contain an instance that resides on the
    specified node. For example, if instance `pmdi1` in cluster `pmdc`
    and instance `ymli1` in cluster `ymlc` reside on node `n1`, `pmdc`
    and `ymlc` are listed.
  configuration-name;;
    Lists all clusters that contain instances whose configuration is
    defined by the named configuration.

[[sthref1375]]

=== Examples

[[GSRFM641]][[sthref1376]]

==== Example 1   Listing All Clusters in a Domain

This example lists all clusters in the current domain.

[source]
----
asadmin> list-clusters
pmdclust not running
ymlclust not running

Command list-clusters executed successfully.
----

[[GSRFM642]][[sthref1377]]

==== Example 2   Displaying the Status of a Cluster

This example displays status of the cluster `ymlclust`, which is not
running.

[source]
----
asadmin> list-clusters ymlclust
ymlclust not running

Command list-clusters executed successfully.
----

[[GSRFM643]][[sthref1378]]

==== Example 3   Listing All Clusters That Are Associated With a Node

This example lists the clusters that contain an instance that resides on
the node `sj02`.

[source]
----
asadmin> list-clusters sj02
ymlclust not running

Command list-clusters executed successfully.
----

[[sthref1379]]

=== Exit Status

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

[[sthref1380]]

=== See Also

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

link:create-cluster.html#create-cluster-1[`create-cluster`(1)],
link:delete-cluster.html#delete-cluster-1[`delete-cluster`(1)],
link:start-cluster.html#start-cluster-1[`start-cluster`(1)],
link:stop-cluster.html#stop-cluster-1[`stop-cluster`(1)]


