aboutsummaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
authorEinhard Leichtfuß <alguien@respiranto.de>2019-04-04 00:04:37 +0200
committerEinhard Leichtfuß <alguien@respiranto.de>2019-04-04 00:04:37 +0200
commitab0cff3bb36721e982301e14435c0f4c8f313995 (patch)
tree44702cebd2019a383e574db3f1ffbd94db670092 /TODO
parent7831ff7b87b2a100ec04611eadefa0a9370f5057 (diff)
Add remote backup functionality
Create wrapper functions that take a host and a function with named arguments. The supplied function is the to be executed on the specified host, which may be the empty string signifying local execution. These wrapper functions essentially export the to be run function and any of its recursive dependencies, further the named arguments as variables, to the remote host, and run the function remotely. That is, if the host is non-local. Also, - use appropriate function names to differentiate between destination and source host wherever applicable. - add comments, - enhance TODO and README, - rename some variables in order to increase consistency, - move some global declarations further upward, - make variables readonly when reasonable, - use named return and exit codes, - add a general `ask'-function.
Diffstat (limited to 'TODO')
-rw-r--r--TODO45
1 files changed, 28 insertions, 17 deletions
diff --git a/TODO b/TODO
index 3d0bfb6..9198ac4 100644
--- a/TODO
+++ b/TODO
@@ -1,27 +1,37 @@
+# -- BUGS -- #
+- $1 == /path/, where /path is configured behaves strangely.
+ `- $1 == /path is fine.
+ `- A backup is created in $PWD/
+
# -- 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
+- 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.
-- 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.
+- [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.
-- Write an install script or such.
-- Delete 'too new' symlinks in by_number.
+- Use autotools.
- Per dirpath rsync_args.
-- Allow resuming of backups.
- `- See rsync's `--ignore-existing' flag
+- 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.
-- Use `local'.
- 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
@@ -40,7 +50,6 @@
`- 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.
@@ -48,3 +57,5 @@
- 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).