Later Backups to the same filesystem will automatically be incremental, as unchanged files are only hard-linked with the existing version of the file.
faubackup-gather reads a NUL-delimited list of filenames from stdin and serializes the contents of these files to stdout in a special format, containing all inode informations. All Error messages or other output are written to stderr. To backup the current directory you can use 'faubackup-find | faubackup-gather'. To be able to correctly read all files, faubackup-gather should be run as the superuser.
faubackup-scatter will read contents of directories from stdin, and recreate all files. stdin must be in the format used by faubackup-gather. It first creates a directory for current date and time inside the current directory (e.g. './2001-02-07@03:20:10'). Everything written will go into this directory or subdirectories.
Everything read by faubackup-gather will be recreated with exactly the same names, contents, permissions and times (with one exeption: inode change time will be the time of the backup). Thus, these two programs are capable of backing up directories just like cpio and tar. faubackup-scatter can deal with holes in files. To be able to correctly set all permissions, faubackup-scatter should be run as the superuser.
faubackup-scatter will detect if there are other backups to the same destination directory (with only differing timestamps). In this case, files that haven't changed since the last backups will not be written to the filesystem, but instead hard-linked against the previous version. Thus, diskspace is only needed for the directory inodes and for changed files.
To be able to hard-link files, faubackup-scatter will create an additional directory, ..inodes, which contains all files, named after their inode (this is: device/inode of the source). These entries are hardlinked to the actual location where they are stored in the backup.
To be able to detect a broken transmission, a special entry (".") is used as an end-of-backup marker. If the connection between the gather and scatter programs suddenly breaks (e.g. because of network outage), faubackup-scatter will detect the missing end-of-backup marker and will mark the backup as broken. To make that system work, the filelist feed into faubackup-gather has to end with a single dot. But that is a good idea anyway, as it ensures that access rights for the root directory of the backup are set correctly. "faubackup-find already generates this marker automatically.
If you want to remove an old backup, simply delete the directory created by faubackup-scatter (the one named after the backup-time). When the same version of a file is needed by an other backup, it will still remain on the disk.
The exact format is subject to change. Look at the source for details.
FauBackup comes with ABSOLUTELY NO WARRANTY. This is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. Look at COPYING for details.