Another Calendar-based Tarsnap Script
acts
is a minimal shell script that creates backups with Tarsnap. Some design goals:
- Just backup, no restore.
- Calendar-based (daily, monthly, yearly) backup schedule
- Portable, small code footprint.
One Tarsnap archive is created per-target per-run. 31 daily, 12 monthly, and indefinite yearly backups are kept.
- Take
acts.conf
and customise it for your environment. Put it in/etc
. - Run
acts
daily from cron.
Notes on behaviour:
acts
creates archives of the form<hostname>-<period>-yyyy-mm-dd_HH:MM:SS-target
. If you have existing archives starting withhostname-(daily|monthly|yearly)
, they will confuseacts
, so don't do that.- Archives are created using the following logic:
- If no yearly backup for the current year exists, create a yearly backup.
- If a yearly backup exists but no monthly backup, create a monthly backup.
- Otherwise, create a daily backup.
- Archives are deleted using the following logic:
- If any backups failed, delete nothing.
- Keep the most recent 31 daily backups, and delete any older ones.
- Keep the most recent 12 monthly backups, and delete any older ones.
- Do not delete any yearly backups.
- Times in archive names use UTC, not the server's timezone.
- Add per-directory excludes handling. (For now, add global excludes in your
tarsnap.conf
or.tarsnaprc
file.) - Add some backup period configurability. (For now, you can edit the hardcoded values in the script.)
Email me ([email protected]) or open a Github issue.