Command Lists

Command lists are for executing commands in sequence and getting notifications from them.

The top-level object key can be anything you want but not the same as another.

Lists can go in a separate file. Command lists should be in a separate file if:

  1. key ‘cmd-lists.file’ is found
  2. hosts.yml or hosts.yaml is found in the same directory as the backy config file
  test2:
    name: test2
    order:
      - test
      - test2
    notifications:
      - mail.prod-email
      - matrix.sysadmin
    cron: "0 * * * * *"
key description type required
order Defines the sequence of commands to execute []string yes
getOutput Command(s) output is in the notification(s) bool no
notifications The notification service(s) and ID(s) to use on success and failure. Must be service.id. See the notifications documentation page for more []string no
name Optional name of the list string no
cron Time at which to schedule the list. Only has affect when cron subcommand is run. string no

Order

The order is an array of commands to execute in order. Each command must be defined.

order:
  - cmd-1
  - cmd-2

getOutput

Get command output when a notification is sent.

Is not required. Can be true or false. Default is false.

Notifications

An array of notification IDs to use on success and failure. Must match any of the notifications object map keys.

Name

Name is optional. If name is not defined, name will be the object’s map key.

Cron mode

Backy also has a cron mode, so one can run backy cron and start a process that schedules jobs to run at times defined in the configuration file.

Adding cron: 0 0 1 * * * to a cmd-lists object will schedule the list at 1 in the morning. See https://crontab.guru/ for reference.

Tip

Note: Backy uses the second field of cron, so add anything except * to the beginning of a regular cron expression.

cmd-lists:
  docker-container-backup: # this can be any name you want
    # all commands have to be defined
    order:
      - stop-docker-container
      - backup-docker-container-script
      - shell-cmd
      - hostname
      - start-docker-container
    notifications:
      - matrix.id
    name: backup-some-container
    cron: "0 0 1 * * *"
  hostname:
    name: hostname
    order:
      - hostname
    notifications:
      - mail.prod-email