aboutsummaryrefslogtreecommitdiffstats
path: root/lifeboat (unfollow)
Commit message (Collapse)AuthorLines
2023-05-16Squash SC2086 for exportsHEAD0.4.2masterWolfgang Müller-4/+4
Technically the quotes here should not be needed, but shellcheck still emits an error for them (see [1]). Quoting doesn't hurt here, so just do that. [1] https://github.com/koalaman/shellcheck/issues/2443
2023-05-16Continue execution if a sync target fails0.4.1Wolfgang Müller-1/+1
lifeboat runs with 'set -e', meaning it stops executing whenever a command invoked by it fails. This means that the entire script stops if rclone fails - potentially ignoring future sync targets. Make sure we catch any failure on rclone's side so the script can continue.
2021-11-14Check pack files for integrity0.4.0Wolfgang Müller-1/+1
The check command does not verify the actual pack files by default, since restic needs to read each one and the repository may be hosted on a cloud repository where downloads are expensive. Since we are working with local repositories, checking for integrity is not that expensive. However, to ease the daily burden, use the --read-data-subset option to check only a random 10% of the repository. After a couple of weeks, then, we can be reasonably sure that, if no errors were raised, the repository is still intact.
2021-05-03Mention the name of the backup in report_backup0.3.1Wolfgang Müller-1/+1
Currently, multiple backups on the same host are hard to identify, so print out the repo name instead of the hostname (which is visible in the From header anyway).
2021-04-30Add command to mail the output of a backup runWolfgang Müller-0/+17
This commit introduces the 'run-report' command and a new config file 'config/recipient' which indicates the recipient of the report. Since lifeboat was always intended to be run via a cronjob, we assumed mail functionality would come from the specific crond implementation. This is well-supported throughout, but not a feature that systemd's timers (yet?) have. Since one of our systems is now running systemd, we needed a decent alternative. A wrapper script was considered, but at that point we could also just as simply include mail support in lifeboat itself. We have chosen to implement this by calling out to sendmail, which seems to be a de-facto standard (postfix has sendmail compatibility, as does msmtp). It should be available on a wide range of systems. For now, hardcode the message headers and send mail to one recipient only. Set the X-Report header for simple filtering by mail clients.
2020-09-17Make sure to return successfully if config/sync is missing0.2.1Wynn Wolf Arbor-1/+1
In sync_default, we test whether the config/sync file exists before reading from it. If it does not exist, we return from the function using the exit status of the last command (test), which in this case is 1. For default setups that do not specify a config/sync file, this will lead to the script as a whole exiting unsuccessfully even though no error occurred. Make sure to set the exit status to 0 in order to signal successful completion of the sync task. Reported-by: Jan Rathner <jarainf@freenode>
2020-06-04Remove unnecessary quotes0.2.0Wynn Wolf Arbor-1/+1
2020-06-04Exit unsuccessfully in usage()Wynn Wolf Arbor-1/+1
The command must not have completed successfully if usage() was called, so indicate this to the user as well.
2020-06-04Remove superfluous subshell from run_backup()Wynn Wolf Arbor-11/+9
2020-06-04Simplify and improve sync_defaultWynn Wolf Arbor-16/+13
sync_default() suffers from needlessly complicated logic in its threshold test. Join the two if clauses together and skip targets cleanly by using `continue` instead. Where possible, use OR lists instead of if clauses and also inline the whole sync_single() function, which was only called from here.
2020-06-04Use LIFEBOAT_ROOT directly throughout the scriptWynn Wolf Arbor-6/+6
Instead of using another variable name to refer to the value of LIFEBOAT_ROOT or its default, use LIFEBOAT_ROOT directly.
2020-02-01Introduce default fallback jobsWynn Wolf Arbor-3/+45
When before lifeboat was expecting the user to populate the run, post, and sync scripts, now it includes a sane default for each step of the backup process, making deployments much more simple. The post script was split up into retain and clean.
2020-02-01Include $HOME/bin in PATH by default when running scriptsWynn Wolf Arbor-0/+1
2020-01-14Use correct path to check whether repo exists0.1.2Wynn Wolf Arbor-1/+1