src | ||
.gitignore | ||
Cargo.toml | ||
README.md | ||
test.remignore |
rembackup
A super simple yet fast backup solution, designed with slow connections in mind.
How it works
Rembackup uses 3 directories: source
, index
, and target
.
rembackup $SOURCE $INDEX $TARGET
In Step 1, Rembackup recursively walks the source
directory, comparing all entries with index
.
It then shows a list of changes that would make target
contain the same files as source
.
If you accept, it will then move on to Step 2 and apply these changes.
If you didn't get any warnings, target
is now a backup of source
.
If you did get one or more warnings - don't worry! You can just rerun the backup and the failed operations will be retried.
What makes it special
If you want to back up your data to an external disk, you probably bought a large HDD.
If you want a remote backup, you may want to self-host something.
In both of these situations, the filesystem containing target
is horribly slow.
If a backup tool tries to compare source
to target
to figure out which files have changed,
it will always be affected by this slowness - even when working on unchanged files.
Rembackup only performs read operations on source
and index
in Step 1.
Because of this, it can be surprisingly fast even when backing up large disks.
In Step 2, where files are actually being copied to target
, the slowness will still be noticeable,
but since only modified files are being copied, this usually takes a somewhat reasonable amount of time.
Usage
To create a backup of your home directory ~
to /mnt/backup
:
rembackup ~ ~/index /mnt/backup
Note: index
(~/index
) doesn't need to be a subdirectory of source
(~
), but if it is, it will not be part of the backup to avoid problems.
Note 2: ~/index
and /mnt/backup
don't need to exist yet - they will be created if their parent directories exist.
If this is the first backup, you can try to maximize the speed of /mnt/backup
.
If you want remote backups, you should probably connect the server's disk directly to your computer.
The backups after the initial one will be a lot faster, so you can switch to remote backups after this.