1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
* better performance
* good dokumentation ;)
* hash function instead of comparing files?
* autoclean {working,broken}-### ?
* .faubackuprc docs: where to put the file?
* test ignore in faubackup.conf
* solaris compatibility: char* instead of void*
* more find options
* acl support
patches welcome :)
Bidirectional remote mode
-------------------------
source host destination host
=========== ================
faubackup-find
-->
faubackup-gethash
<--
faubackup-gather
-->
faubackup-scatter
Problems:
have to create two ssh-connections, any way around it?
multiplex connections: hard to do right
use different file descriptors to be forwarded by ssh?
have to call different programs, can't use ssh-authorized_keys-commands
just call fauback --remote or something and read standard-input for command?
Hash functions
--------------
for each inode, store its md5sum/sha1/whatever
faubackup-gethash returns that hash
faubackup-gather first calculates the hash of every file that is to be backed
if it's identical, it sends a 'no-update' command to faubackup-scatter
before: one read on source-disk, one read and one write on target disk
after: one or two reads on source-disk, zero or one write on target disk
(depending on weather we need the update or not)
use the hash instead of the inode number to identify content?
this would save some space.
yes, but it wouldn't be a correct backup any more
i.e. the backup would link identical files that are not hard-linked
in the original. this may introduce problems.
so, we still need the inode number, hash can only be used to speed up the backup
use rsync?
----------
this would be even better than the hash over the complete file, as
we'd only have to transfer the changed part of the file
could work with --compare-dest and --link-dest if we use the inode link
as destination, and manuall link it to the real name later
|