Update README

This commit is contained in:
Eric Torres 2019-04-10 19:22:56 -07:00
parent 3772303aa7
commit 0845d6f00d

61
README
View File

@ -13,11 +13,13 @@ Features
Advanced Features Advanced Features
^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^
* rbackup depends on the filesystem that stores the repository to provide features such as checksumming, advanced deduplication, and data integrity verification * rbackup depends on the filesystem that stores the repository to provide features such as checksumming, deduplication, and data integrity verification
* Encryption must be handled by an external program, this is out of scope for rbackup
* xattrs and acl's are handled by rsync but must be a supported feature of the filesystem the repository is stored on
Target Directories Target Directories
------------------ ------------------
* /boot * /boot/loader
* /etc * /etc
* /home * /home
* /root * /root
@ -30,28 +32,55 @@ Target Directories
Backup Directory Hierarchy Backup Directory Hierarchy
-------------------------- --------------------------
* basedir basedir
| - data *directory containing all snapshots* ├── current
| | - snapshot1 *first snapshot* └── data
| | - boot ├── snapshot-one
| | - home │   ├── boot
| | - etc │   ├── etc
| | - snapshot2 │   ├── home
| | - boot │   ├── pkg
| | - home │   └── root
| | - etc └── snapshot-two
| - prev *link to previous snapshot* ├── boot
* Assuming snapshot2 was the previous backup and snapshot1 was the backup before that: ├── etc
* prev would link to snapshot2 ├── home
* Unchanged files files from snapshot1 backed up to snapshot2 are hardlinked to snapshot1 ├── pkg
└── root
* Assuming snapshot2 was the previous backup and snapshot1 was the backup before that:
* current would link to snapshot2
* Unchanged files files from snapshot1 backed up to snapshot2 are hardlinked to snapshot1
Implementation Notes Implementation Notes
-------------------- --------------------
* pathlib is used for path handling * pathlib is used for path handling
* Use --link-dest= * Use --link-dest=
* Use --suffix=, --backup, and --backup-dir= * Use --suffix=, --backup, and --backup-dir=
* When hardlinking, rbackup passes the entire path to avoid needing relative paths
To-do To-do
----- -----
* Add -n flag to backup script to name a Snapshot
* What happens when two snapshots have the same name?
* Add ability to read metadata from a file for a Repository
* Snapshot as well?
* Use --suffix=, --backup, and --backup-dir= * Use --suffix=, --backup, and --backup-dir=
* Study how snapshots behave when --delete is passed
* Snapshot cleanup script
* Repository.__delitem__()
* Repository.__contains__()
* Snapshot.__del__()?
* Add __enter__ and __exit__ for PackageManager lockfiles to prevent transactions during backup
* Get rid of counter variable in __next__?
Dependencies
------------
Runtime
^^^^^^^
* rsync
Build/Testing
^^^^^^^^^^^^^
* setuptools
* hypothesis