timemachine backup is a backup script that uses rsync
Find a file
2025-12-02 12:47:25 -05:00
.gitignore Add initial commit of timemachine_backup 2025-12-02 12:36:55 -05:00
config.example Add initial commit of timemachine_backup 2025-12-02 12:36:55 -05:00
README.md Add an s, add rsync_ssh_client, and update docs 2025-12-02 12:47:25 -05:00
rsync_ssh_client Add an s, add rsync_ssh_client, and update docs 2025-12-02 12:47:25 -05:00
timemachine_backup Add an s, add rsync_ssh_client, and update docs 2025-12-02 12:47:25 -05:00

timemachine backup

Background

timemachine backup uses rsync to create backups. It uses rsync's --link-dest feature to create hard links to the last backup's files if they have not changed

Configuration

Backup Server

Create /etc/timemachine/config Use config.example as a guide to create a configuration that suits your needs

Backup Clients

Client script

Copy rsync_ssh_client to a directory on the client

What to back up

Create /etc/timemachine/backup_list, which is a list of mount points/directories to back up

Note that timemachine backup does not cross filesystem boundaries. So if /path/to/filesystem1 and /path/to/filesystem1/filesystem2 are different file systems, they both must be in backup_list to be backed up

What to ignore

Create /etc/timemachine/exclude_list, which is a list of files and directories to exclude from the backup

SSH Keys

Create an SSH key for the backup and define it in the configuration file On each client, create an authorized_keys entry for the root user (or a user that has access to the files to be backed up) that looks like this:

restrict,command="/opt/timemachine/rsync_ssh_client" ssh-ed25519 KEY backupserver