The format of the configuration file is:
This is a sample configuration file:
# path intvlfilter filelast done /usr 8h/dev/nullSat Apr 30 00:33:03 1988 /homes/neat/car 8h/etc/filter.uSat Apr 30 00:33:03 1988 /homes/neat/cdr 8h/etc/filter.uSat Apr 30 00:33:03 1988 /var 24h/dev/nullSat Apr 30 00:33:03 1988
The first three fields are maintained manually (and defaulted if backup is given a subtree argument not appearing in the configuration file). The last field is maintained by the program itself. After every successful run, the configuration file is written out containing the updated timestamp information. The purpose of the configuration file is to allow all information be maintained in this form, and the backup program started very frequently by cron(8).
Backed up files are stored in a parallel directory hierarchy under the
root of the backup hierarchy (by default
/backup).
Each backed up file has associated with it a directory whose relative
pathname under the root of the backup hierarchy is its full pathname.
This directory contains one or more backed up files in files named by
the date of the backup. Thus, a user with a file
/homes/neat/car/user/src/stuff.c
that he has been working on and hence has been backed up a number
of times might find a set of files
/backup/homes/neat/car/user/src/stuff.c/Apr30-06:05,
/backup/homes/neat/car/user/src/stuff.c/Apr30-09:05,
and
/backup/homes/neat/car/user/src/stuff.c/Apr30-12:05.
Permissions and owner/group are copied with the files.
As the backups are very expensive in terms of file space only files of less than some size, currently 100 kilobytes, are saved. Files can be deselected by creating a filter file, and adding to it glob patterns that would match suspicious names. Typically, for example core, a.out, emacs temporaries like #* or *~ and many others, are not backed up.
When filespace usage on the backup root's file system passes a high water mark, currently 95%, backup deletes files in order by modification date until it has enough space under the high water mark to add new backup files.
Backup reads the entire i-list for the filesystem, saving information such as the modification time and type of the inode. Thereafter all the appropriate file names are identified by tree walks in the filesystem, and backed up. If files must be deleted from the backup hierarchy, then it does the same for the backup subtree (only deleting instead of backup up!).
The various options are: