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:
- key ‘cmd-lists.file’ is found
- 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.
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