# -- BUGS -- # # -- TODO -- # - For ssh, set up one single connection (maybe configurable?). `- ssh -oControlPath=/tmp/root-readable/something.sock \ -oControlMaster=yes \ -oControlPersist $remote /bin/true `- ssh -oControlPath=/tmp/root-readable/something.sock - Replace echo by printf(-functions). - Set up default configuration file. - [consider] When installing, copy the config file to both /etc and /usr/share, such that sourcing from the latter location removes the need to specify default options in the script itself. - Test for read/write access at some point. - Better error reporting. - Use autotools. - Per dirpath rsync_args. - Allow for resuming of backups. `- See rsync flags `- --ignore-existing `- Not a good idea if a notable amount of time passed. `- [question] What happens in case of partially transferred files? `- --delete-during, --delete-excluded - 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). # -- PROBLEMS -- # - rsync bug: https://bugzilla.samba.org/show_bug.cgi?id=13445 - Permissions. `- Suppress error output by 2>/dev/null. `- Save errors in a var by 'var="`cmd 2>&1`"'. `- Better: Print different error-text (test $? -gt 0). `- Or: Simply leave it as is. `- Best(?): test -r (read access) - No read-access `- to $bakpath/... `- to $dirpath/... `- Solutions similar to 'permissions' above. - No write access to $dirpath/... `- Maybe check by running chown / test -w. `- Should return errors if not possible. `- One could offer an exit option to the user `- or auto fix using sudo. # -- IDEAS -- # - colorized Output. `- optional (-c) - Use Hexadecimal numbers for by_number. - Verbosity option. `- For now, -v or -vv in rsync_args should work fine. - non-intercative option. - rsync_network_options (when remote src or dest, e.g. for --compress).