Introduction ------------ rsync-backup is a frontend to rsync (with a few extras) to allow for the creation of incremental backups, using hard links. It notably is tracking movements, that is a file moved (but unchanged) in the source file tree will not be stored twice for two corresponding backups - before and after the movement. Dependencies ------------ Most dependencies are required locally and remotely, as a huge part of the script may be executed remotely. - bash>=4.2 (test -v) - rsync - ssh - coreutils - find Installation ------------ Put all the source files in one directory. It may be desirable to set up a symbolic link in e.g. /usr/local/bin, or a shell alias. Usage ----- Execute 'rsync-backup' either with one argument, specifying the source directory, requiring that to be configured (see Configuration) or two arguments, where the second one specifies the destination. It is highly recommended to configure the respective directories, not least to configure to be excluded parts of the file tree (e.g., /dev, /mnt). It is possible to use a remote location for one of the source and destination. Examples: $ rsync-backup /home # requires prior configuration $ rsync-backup / user@server:/backup Configuration ------------- Configuration may be done in the file '/etc/rsync-backup/config'. See the source file 'variables' for information on which variables can be set. Documentation ------------- As of now, documentation on the usage is found only here. The file NOTES provides an overview of the ideas and the (inner) working of this program. Notes ----- IMPORTANT: Both the source and destination file tree should reside on a single file system. It is highly recommended to exclude (config: filter_file) other mounted file systems. Otherwise, assuming the backup process does not fail, each new backup is expected to take the full space for such mounted subdirectories. Symbolic links are simply copied, thus linking to the backed-up filetree, not the backup-filetree itself. Dates are always calculated on the source host.