Tapestry is my specialized backup automation tool, currently in version 0.2.2. The project started as a simple exercise in automating what was, for me, a rather complex task. Naturally, it has since sprawled considerably as an exercise in generalizing its use. It is presently written in Python 2.7.12 with dependencies on Python-GNUPG and Gnu Privacy Guard.
Tapestry works by searching a pre-defined set of directories (and all of their subdirectories), indexing their files, which it then seperates into the minimum possible number of blocks of a user-defined size, before copying, packaging them as a TAR with bz2 compression, and encrypting them with a purpose specific Disaster Recovery RSA key. The intended use case (mine) was to burn the individual disks to single-write media (in my case, DVDs and, later, BD-R) and recover them as necessary, possibly with off-site storage.
Tapestry has a number of features developed since then:
- Multiplatform Support
- Automatic Signing/Validation of Backup Files
- Simple/Extended Backup Location Lists
- Automatic DR Key generation
- Keyring-Only Mode
- Key Change Detection (to prevent fraud)
Intended future features include:
- Completed Windows and OSX use testing
- Enhanced key generation, support for passphrases on DR Key
- Increased granularity on the inclusive backup function (e.g. Specifically include the category “music”)
- Backup-to-server Function
- Speed Optimization
In future posts, we’ll explore why some of these design decisions were made.