A set of shell scripts to perform automated backups on linux workstations/servers. Follows the Unix-style workflow: a single script performs a single (usually simple) task - write the backup to disk, ask remote server for backup, generate backup content for backup type X. See "backup/doc" directory for more info. Client - fetches backups from servers and stores them locally Server - serves backup contents to clients /usr/lib/output: disk - On a client, writes stdin to a file on a filesystem tape - On a client, writes stdin to a tape /usr/lib/sbin: gen-backup-key - On a server, generate a pair of ssh keys, store in /etc/backup get-backup - On a client, fetch backup from a backup server (over SSH) and pass it to stdout get-backup-types - On a client, fetch a list of backup types (levels/sublevels) from a backup server and pass it to stdout get-tape-label - On a client, read a tape label from a tape make-backup - On a server, run a script from /etc/backup/scripts and pass generated backup to stdout store-system-info - On a server, get some extra system info (partition table, boot sector) and store them in /etc/backup/system /etc/backup: secrets - On a server, passwords used for DB access, backup encription etc, as env variables (shell script) ssh-key* - On a client, ssh keys system/ - On a server, data collected by store-system-info scripts/ - On the server, named X.Y with accompanying X.Y.info text files. X and Y are integers, X being "level", Y "sublevel". Client can poll a list of levels (X values) and sublevels for given X (X.Y values). Each X.Y script is expected to generate some data that it wants to back up and pass it to stdout. See examples in backup/doc/examples/scripts/ tapes/ - On a client, scripts to be run from a crontab, each requesting a set of backups from remote servers and storing them locally (using scripts from "output"). See examples in backup/doc/examples/tapes/ timestamps/ - On a server, place for scripts to place timestamp files, for incremental backups.