# execute - run external command

fail_command
  Type:

    string

  Required:

    false

  command to execute when a monitor fails

success_command
  Type:

    string

  Required:

    false

  command to execute when a montior recovers

catchup_command
  Type:

    string

  Required:

    false

  command to execute when exiting a time period when the alerter couldn’t fire, a monitor failed during that time, and hasn’t recovered yet. (See the `delay` configuration option.) If you specify the literal string `fail_command`, this will share the `fail_command` configuration value.

You can specify the following variable inside `{curly brackets}` to have them substituted when the command is executed:

- `hostname`: the host the monitor is running on

- `name`: the monitor’s name

- `days`, `hours`, `minutes`, and `seconds`: the monitor’s downtime

- `failed_at`: the date and time the monitor failed

- `vitual_fail_count`: the monitor’s virtual failure count (number of failed checks - `tolerance`)

- `info`: the additional information the monitor recorded about its status

- `description`: description of what the monitor is checking

You will probably need to quote parameters to the command. For example:

    fail_command=say "Oh no, monitor {name} has failed at {failed_at}"

The commands are executed directly by Python. If you require shell features, such as piping and redirection, you should use something like `bash -c "..."`. For example:

    fail_command=/bin/bash -c "/usr/bin/printf \"The simplemonitor for {name} has failed on {hostname}.\n\nTime: {failed_at}\nInfo: {info}\n\" | /usr/bin/mailx -A gmail -s \"PROBLEM: simplemonitor {name} has failed on {hostname}.\" email@address"