~aleteoryx/backupper

a backup system in Tcl
readme, fixes
tar import/export

refs

master
browse  log 

clone

read-only
https://git.amehut.dev/~aleteoryx/backupper
read/write
git@git.amehut.dev:~aleteoryx/backupper

You can also use your local clone with git send-email.

#Backupper

a compressing deduplicating snapshot backup system, written in Tcl.

  • dependencies:
    • sqlite3
    • tcllib

the script expects a linux environment, as it reads /proc/cpuinfo to get the number of cores. I believe there are no other platform-specific behaviors, so patching this script for windows or other unices would be trivial.

to use it

  1. backupper.tcl init <store> some store directory. this is where backup data will go. backupper does not care what or where this directory is as long as it has read/write.
  2. backupper.tcl importtar <store> <name> <tarball> a tarball. the file data inside of it will be extracted and deduplicated, and the tarball itself will be stored with an id and hash.
  3. backupper.tcl export <store> <id> the id from step 2. the tarball will be replicated identically in the current directory, with file data restored

there is also a simpler importlist command that takes in a list of files, one per line, and works similarly. on export, they will be placed in a local directory.

there are also commands for inspecting the contents of the store, run the script with no args for more info.

to list the backups in a store, run sqlite3 -box <store>/index.db 'select rowid, * from tarballs'. at some point I might add a command for this.

GLHF don't sue me if this fails spectacularly