# Backup Script
-A script for cloning systems using rsync.
-Copyright (c)2008-2016 Alexander Barton (<alex@barton.de>)
-Homepage: https://github.com/alexbarton/backup-script
+A script for backing up data using `ssh`(1), `rsync`(1), and `scp`(1).
+Can handle backup generations on *btrfs* and *ZFS*.
+Copyright (c)2008-2020 Alexander Barton (<alex@barton.de>)
+Homepage: <https://github.com/alexbarton/backup-script>
+
+## Installation
+
+Call the scripts located in `./bin` directly from the source folder, or run
+`make install` to install them to `/usr/local/sbin`.
+
+You can set `PREFIX` to use an other path prefix than `/usr/local` like this:
+`make PREFIX=/opt/backup-script install`.
## Usage
### backup-script
-Backup all or individual systems.
+Run all or individual backup jobs.
Usage: `backup-script [<options>] [<job> [<job> [...]]]`
When no *job* is given, all defined jobs are checked.
-
## Configuration
All default configuration variables are read from the first file found of this
- `/etc/backups-script.d/host01.example.net`: configuration for host 1
- `/etc/backups-script.d/clientXY.example.com`: configuration for host 2
-
### Global Settings
The following global configuration options exist:
variant can be used and define default values for all jobs that don't overwrite
them individually.
-
## Configuration Variables
### system
Supported file systems are:
- * *btrfs*:
- All generations are btrfs subvolumes and named after the date and time.
- * *ZFS*:
- All generations are ZFS file systems. Latest generation is named `current`,
- elders are links to the ZFS snapshot directories.
+- *btrfs*:
+ All generations are btrfs subvolumes and named after the date and time.
+- *ZFS*:
+ All generations are ZFS file systems. Latest generation is named `current`,
+ elders are links to the ZFS snapshot directories.
The latest snapshot is always reachable using a symlink named `latest`
inside the system directory.
script in job definition files are automatically mapped to the new backup-script
variables:
-* host -> system
-* source -> source_root
-* pre_exec -> job_pre_exec
-* post_exec -> job_post_exec
-
+- `host` -> `system`
+- `source` -> `source_root`
+- `pre_exec` -> `job_pre_exec`
+- `post_exec` -> `job_post_exec`
## Exit codes
+- 0: No error, success.
- 1: Unspecific Error!
- 2: Usage information has been shown.
- 3: Can't read job definition