Another Calendar-based Tarsnap Script.
acts is a minimal shell script that creates backups with Tarsnap. Our
- Just backup, no restore.
- Calendar-based backup schedule
- Portable, small, code footprint.
One daily Tarsnap archive is created per-target per-run. By default, 31 daily and 12 monthly backups are kept, and yearly backups are kept indefinitely.
You can use the development version of
acts by cloning this
repository, or download the latest stable
acts.conf.sample, customise it for your environment, and save it to
actsdaily from cron.
Notes on behaviour:
actscreates archives of the form
- Archives are created using the following logic:
- Daily archives are created every time acts is run.
- Monthly/yearly archives are copied from the most recent daily archive if they don't exist.
- Archives are deleted using the following logic by default:
- 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.
- If you ever remove a backup path from your config, its old backups will no longer be automatically cleaned.
- Add per-directory excludes handling. (For now, add global excludes
How do I back up directories with spaces? Sorry, acts doesn't support this. I suggest you create a symlink to the target directory which doesn't have spaces in its path, and add
tarsnapbackupoptionsin your configuration file.
How do I see the
tarsnapoutput? Basically, you don't.
tarsnapoutput if tarsnap failed. To see what acts is doing, you can set
acts.conf. You can get some good
tarsnapinfo, including exactly how much new data this backup consumed, with a prebackupscript. Be sure to set
acts.confto wherever you put this script:
#!/bin/sh . /etc/acts.conf # Or wherever your acts.conf lives tarsnap --dry-run --quiet --print-stats --humanize-numbers -C / -c $backuptargets 2>&1
- Why does
actscreate a separate backup for each target? This is the original recommended paradigm for
tarsnap, the idea being that you save bandwidth (and therefore money) by only retrieving the pieces you need. If
/etcgets damaged, why download the entirety of
/home? If this paradigm doesn't fit your needs and workflow, there is a fork of
actscalled calsnap that produces one backup containing all targets.
Open a Github issue.