diff options
| -rw-r--r-- | NOTES | 6 | ||||
| -rw-r--r-- | README | 7 | ||||
| -rw-r--r-- | TODO | 10 | ||||
| -rw-r--r-- | destination | 2 | ||||
| -rw-r--r-- | variables | 4 |
5 files changed, 20 insertions, 9 deletions
@@ -17,7 +17,7 @@ This is intended as a short, rather high-level, documentation. links between differently dated backups of that file tree to reduce space requirements while keeping the data in a simple form. - The destination file system is usually different to the on the source file + The destination file system is usually different to the one the source file tree resides on, in particular, it may be on a different host. The rsync(1) command line program serves as backend. Therefore, at least one of the source and destination need to be local. @@ -79,6 +79,10 @@ method. `- In particular though, the source file system needs to be writable. This problem may possibly be circumvented using bind mounts. + * Deleting regular files on the source file system does not free up space. + Corresponding files in /.backup may safely be deleted to mitigate this + problem. + # -- REMOTE METHOD CALLS -- # @@ -11,8 +11,8 @@ movement. Dependencies ------------ - Most dependencies are required locally and remotely, as a huge part of the -script may be executed remotely. + All dependencies except rsync are required locally and remotely, as a huge +part of the script may be executed remotely. - bash>=4.2 (test -v) - rsync @@ -52,6 +52,9 @@ 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. + If you are using plocate you probably want to add /<path>/.backup to +PRUNEPATHS in updatedb.conf(5) for each configured backup at source at /<path>. + Documentation ------------- @@ -5,6 +5,8 @@ data labeled as old, however not related to the destination). # -- TODO -- # +- IMPORTANT: Fix crontabs (cron does not like hardlinks) +- --log-file{,-format} - For ssh, set up one single connection (maybe configurable?). `- ssh -oControlPath=/tmp/root-readable/something.sock \ -oControlMaster=yes \ @@ -25,21 +27,22 @@ `- --delete-during, --delete-excluded - [consider] Shell completion of configured backup paths. - Better error handling on failure (of rsync). -- Use ask(). - `- Allow for configuration of default answer. - [consider] Create subdirectories per year and/or month. -- [consider] Get date on source host. - Named backups to allow for different destinations per source (and shorter names). - Test suite. - Check for several file systems in a tree (and error upon locating such). - [consider] Add fallback if no local mirror of the source file tree is available. + `- option 1: Simply rely on --link-dest as before. + `- option 2: Repopulate the .backup directory, using --link-dest. - Only store the last mirror locally, but date it. - [consider] --one-file-system as default option. +- NOTES: Add section on alternatives, featuring Btrfs, LVM, ZFS, overlayfs. # -- PROBLEMS -- # - rsync bug: https://bugzilla.samba.org/show_bug.cgi?id=13445 + `- resolved by commit 7f06cc7ed0bc74628592fb7c669827e28b625582 (2020-04-03) - Permissions. `- Suppress error output by 2>/dev/null. `- Save errors in a var by 'var="`cmd 2>&1`"'. @@ -57,6 +60,7 @@ `- or auto fix using sudo. # -- IDEAS -- # +- Keep <n> old trees in /.backup . - colorized Output. `- optional (-c) - Use Hexadecimal numbers for by_number. diff --git a/destination b/destination index 4829838..86580b0 100644 --- a/destination +++ b/destination @@ -21,7 +21,7 @@ # -# Setup working directory on the destination files system. +# Setup working directory on the destination file system. # # requires: create_new_dir # @@ -66,8 +66,8 @@ typeset debug=true typeset src_mirror_reldir='.backup' typeset -a rsync_base_args -typeset -a rsync_mirror_args -typeset -a rsync_transfer_args +typeset -a rsync_mirror_args # TODO: apparently unused +typeset -a rsync_transfer_args # TODO: apparently unused typeset -A bakpath typeset -A filter_file typeset filter_file_all # Applied after specific filter. |
