# -- TODO -- # - Make both remote source and destination possible. `- Therefore, one could analyze the respective path strings. `- Use 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. - 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. - Write an install script or such. - Delete 'too new' symlinks in by_number. - Per dirpath rsync_args. - Allow resuming of backups. `- See rsync's `--ignore-existing' flag - Shell completion of configured backup paths. - Use `local'. - Better error handling on failure (of rsync). # -- 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. - Commands like mkdir can fail! - e.g. due to missing permissions. # -- IDEAS -- # - colorized Output. `- optional (-c) - Use Hexadecimal numbers for by_number. - Verbosity option. `- For now, -v or -vv in rsync_args should work fine.