Hooks
If you want to perform some commands before and/or after a backup, you can use hooks.
They consist of a list of commands that will be executed in the same directory as the target from.
The following hooks groups are supported, none are required:
prevalidatebeforeafterfailuresuccess
The difference between prevalidate and before hooks are that prevalidate is run before checking the backup location is valid, including checking that the from directories exist. This can be useful, for example, to mount the source filesystem that contains the directories listed in from.
locations:
  my-location:
    from: /data
    to: my-backend
    hooks:
      prevalidate:
        - echo "Checks"
      before:
        - echo "One"
        - echo "Two"
        - echo "Three"
      after:
        - echo "Bye"
      failure:
        - echo "Something went wrong"
      success:
        - echo "Well done!"Flowchart
prevalidatehook- Check backup location
 beforehook- Run backup
 afterhook- 
successhook if no errors were foundfailurehook if at least one error was encountered
 
If either the prevalidate or before hook encounters errors then the backup and after hooks will be skipped and only the failed hooks will run.
Environment variables
All hooks are exposed to the AUTORESTIC_LOCATION environment variable, which contains the location name.
The after and success hooks have access to additional information with the following syntax:
AUTORESTIC_[TYPE]_[I]
AUTORESTIC_[TYPE]_[BACKEND_NAME]Every type of metadata is appended with both the name of the backend associated with and the number in which the backends where executed.
Available Metadata Types
SNAPSHOT_IDPARENT_SNAPSHOT_IDFILES_ADDEDFILES_CHANGEDFILES_UNMODIFIEDDIRS_ADDEDDIRS_CHANGEDDIRS_UNMODIFIEDADDED_SIZEPROCESSED_FILESPROCESSED_SIZEPROCESSED_DURATION
Example
Assuming you have a location bar that backs up to a single backend named foo you could expect the following env variables:
AUTORESTIC_LOCATION=bar
AUTORESTIC_FILES_ADDED_0=42
AUTORESTIC_FILES_ADDED_FOO=42