---
name: "moncmd"
section: "1"
platform: "linux"
package: "mon"
version: "1.4.1-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/moncmd"
---

# moncmd(1)

send commands to mon daemon and show the results.

## NAME

moncmd - send commands to mon daemon and show the results.

## SYNOPSIS

**moncmd** \[**-a**\] \[**-d**\] \[**-l** *username*\] \[**-f** *file*\] \[**-s** *server*\] \[**-p** *port*\] \[**command**\]

## DESCRIPTION

**moncmd** sends commands to the **mon** server.

## OPTIONS

- **-a**

  Authenticate with the server.

- **-d**

  enable debugging, which is the same as **-s** *localhost*.

- **-f** *file*

  Read and execute commands from *file*.

- **-l** *username*

  Supply *username* as the username while authenticating to the server.

- **-s** *server*

  Connect to *server*.

- **-p** *port*

  Use TCP port *port* when connecting to the server, instead of the default of 32777.

## MONITOR HOST

**moncmd** will use the host specified by the **-s** parameter as the server.  If there is no **-s** parameter it will use the host specified in the MONHOST environment variable.  If there is no host in either of these locations it will exit with an error.

## BATCH OPERATION

If no commands are supplied to **moncmd** on the command line, then commands will be taken from either standard input, or from the file specified by the -f parameter. If standard input is connected to a TTY and the -a option is supplied, then it will prompt for a password. If the -a option is supplied without the -f option and standard input is not a TTY, then the username and password are read from standard input using the syntax "USER=username" and "PASS=password". The remaining input lines are interpreted as commands to send to the server. **moncmd** will not take usernames or passwords from a file, for obvious security reasons.

If the username is neither supplied by the -l parameter or through standard input, it is taken from the effective user ID of the current process.

## COMMANDS

The following is a list of the commands that the server understands.

- **enable \| disable service** *group* *servicename*

  Enables/disables alerts for *group* and *servicename*. All disabled states are automatically saved to the state file, which may optionally be re-loaded upon restarting or initial startup of the server.

- **ack** *group service comment*

  Acknowledge a failure condition. This will store *comment* in the state of service (queryable by doing a *list opstatus* command), and will surppress further alerts for the service. Once the service returns to a non-failure state, then the acknowledgement is reset.

- **version**

  Displays the protocol version in the form of "version **num**" where **num** is the protocol version number.

- **list aliases**

  Lists aliases.

- **list aliasgroups**

  Lists alias groups.

- **savestate**

  Save the state of the server. Currently, the only state which is saved is the host/watches/services which are disabled.

- **loadstate**

  Load the state of the server. Currently, the only state which is loaded is the host/watches/services which are disabled.

- **enable \| disable host** *hostname*

  Enables/disables host *hostname* in all groups. When the monitor is called, this hostname will not be included in the list of hostnames sent to the monitor. If a group has only one hostname in it, then the **enable \| disable watch** command should be used instead.

- **enable \| disable watch** *watchgroup*

  Enables/disables an entire watch for *watchgroup*, as defined in the configuration file. Disabling a watch not only stops alerts from happening, but it stops the actual monitor processes from being scheduled.

- **reset**

  Resets the server, forcing it to re-read the configuration file, kill off currently running monitors, restart all monitoring, and reset all counters. This command is only accessible if **moncmd** connects from the host which is running the **mon** server.

- **reset stopped**

  Resets the server and immediately stops the scheduler. This is an atomic version of the commands **reset** and **stop**.

- **reload auth**

  Reloads the auth.cf file in order to incorporate any new changes. The auth table is completely re-generated; it is not merged.

- **reset keepstate**

  If the word "keepstate" comes after the reset command, the server will do a "loadstate" right after the reset, before the scheduler kicks back in.

- **stop**

  Stops the scheduler, but continues to allow client connections.

- **start**

  Re-starts the scheduler after it has been stopped.

- **test monitor** *group* *servicename*

  Triggers a test for *group* and *service* immediately by setting the service's countdown timer to zero.

- **test (alert \| upalert \| startupalert)** *group* *servicename* *retval* *period*

  Triggers a test alert, upalert, or startupalert for *group* and *servicename*. *retval* is the integer exit value to pass to the alert via the MON\_RETVAL environment variable. You must also specify the *period* as it appears in the configuration file. All alerts of the given type in that period will be triggered, but the alert will not be logged.

- **servertime**

  Returns the current time of the server as seconds since Jan 1, 1970.

- **list group** *groupname*

  Lists the members of group *groupname*.

- **list descriptions**

  List the descriptions of each service, as defined in the configuration file. If a service description is undefined, then it is not listed.

- **list alerthist**

  Lists the last alarms triggered for each service of each watch group, in addition to the summary output. The number of alerts to keep in memory is bounded by the *maxkeep* variable, configurable on the **mon** command line at startup, and expandable with the **set** command during runtime.

- **list failurehist**

  Lists the last failures, in addition to the summary output. This is also limited by the *maxkeep* variable.

- **list opstatus**

  Lists operational status of all services. Reports whether the last time a service group was tested resulted in success or failure. The output is:

  ```
  group service untested
  group service time timeleft succeeded
  group service time timeleft failed output
  ```

  where *output* is the first line of output from the monitor script which failed, *time* is the time that the condition was last noticed in [**time**(2)](/time/2.md) format, and *timeleft* is the number of seconds left until the service is tested again.

- **list successes**

  Generates the same output as the **list opstatus** command, but only shows the services that have succeeded the last time they were tested.

- **list failures**

  Generates the same output as the **list opstatus** command, but only shows the services that have failed the last time they were tested.

- **list disabled**

  Lists all hosts and services which have been disabled by the **disable host\|service** command.

- **list pids**

  Shows the currently active watch groups/services along with their process IDs, and it process ID of the server daemon.

- **list watch**

  Lists all watches and services.

- **list state**

  Lists the state of the scheduler.

- **set** *group* *service* *variable* *value*

  Sets a variable to value. Useful for temporarily changing an interval or alertevery value. Be careful, because this can just set any value in the %watch hash, and some values that are specified in the configuration file like "10m" or "35s" are converted and stored as just plain integer seconds (e.g. "alertevery").

- **get** *group* *service* *variable*

  Displays the value of group service variable.

- **set** *variable* *value*

  Assigns *value* to the global variable *variable*.

- **set opstatus** *group* *service* *value*

  Sets the opstatus value for *group* and *service.*

- **get** *variable*

  Shows the value of global variable *variable*.

- **term**

  Terminates the server. This command is only accessible if **moncmd** connects from the host which is running the **mon** server.

## ENVIRONMENT VARIABLES

- MONSERVER

  The hostname of the server which runs the **mon** process.

- MONPORT

  The port number to connect to.

## SEE ALSO

[mon(8)](/mon/8.md)

## BUGS

Report bugs to the email address below.

## AUTHOR

Jim Trocki \<trockij@arctic.org\>
