Fenix backup was my bachelor thesis project on the MFF UK in 2015.
My aim was to develop another backup tool which would be capable of complex backup settings and abilities like:
- How many historical versions of file to keep determined by its type and size and in which subtree of the filesystem it is.
- Pruning the history to maintain more recent backups and less old backups (but not based on classic daily, weekly and monthly backup plans).
- Handling of moving the files on the backuped system.
It is written in C++11 using several external libraries, most notable the Cereal serialization library, and
it is primary aimed for use on Linux. But another adapters could be written easily.
Main functionality was completed and the bachelor thesis was successfully defended. It is usable, but there are several things to do:
- Version for large installations – if you have multiple similar computers (like office computers under one
IT department), it would be nice to backup them to the same repository in way, that same files would be stored only once.
- Better CLI interface.
- Refactoring of the code – I was learning some nice new C++11 stuff on this project (like smart pointers) but sometimes I misused them
or I wrote thing to much complicated even if it could be written in better way. In short, every once written code needs refactoring, even the refactored code :)