Cron
Often it is useful to trigger backups automatically. For this, we can specify a cron attribute to each location.
locations:
my-location:
from: /data
to: my-backend
cron: '0 3 * * 0' # Every Sunday at 3:00Here is an awesome website with some examples (opens in a new tab) and an explorer (opens in a new tab).
Installing the cron
This has to be done only once, regardless of how many cron jobs you have in your config file.
To actually enable cron jobs you need something to call autorestic cron on a timed schedule.
Note that the schedule has nothing to do with the cron attribute in each location.
My advice would be to trigger the command every 5min, but if you have a cronjob that runs only once a week, it's probably enough to schedule it once a day.
Crontab
Here is an example using crontab, but systemd would do too.
First, open your crontab in edit mode
crontab -eThen paste this at the bottom of the file and save it. Note that in this specific example the config file is located at one of the default locations (e.g. ~/.autorestic.yml). If your config is somewhere else you'll need to specify it using the -c option.
# This is required, as it otherwise cannot find restic as a command.
PATH="/usr/local/bin:/usr/bin:/bin"
# Example running every 5 minutes
*/5 * * * * autorestic -c /path/to/my/.autorestic.yml --ci cronThe
--cioption is not required, but recommended
To debug a cron job you can use
*/5 * * * * autorestic -c /path/to/my/.autorestic.yml --ci cron > /tmp/autorestic.log 2>&1Now you can add as many cron attributes as you wish in the config file ⏱
Also note that manually triggered backups with
autorestic backupwill not influence the cron timeline, they are intentionally not linked.