aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEinhard Leichtfuß <alguien@respiranto.de>2026-06-13 16:16:45 +0200
committerEinhard Leichtfuß <alguien@respiranto.de>2026-06-13 16:16:45 +0200
commitbf86ae4c77fa6c6de544bfe630c6abc83b9d34ab (patch)
tree4d61144d2af9353f1461de513c96a6bad00ceca3
parent4e2ceb9875c81c33b09f6eaf0858b7f9591b22cc (diff)
Update/improve docs
-rw-r--r--NOTES6
-rw-r--r--README7
-rw-r--r--TODO10
-rw-r--r--destination2
-rw-r--r--variables4
5 files changed, 20 insertions, 9 deletions
diff --git a/NOTES b/NOTES
index cc84920..25b853c 100644
--- a/NOTES
+++ b/NOTES
@@ -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 -- #
diff --git a/README b/README
index 66ba148..9bb49ed 100644
--- a/README
+++ b/README
@@ -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
-------------
diff --git a/TODO b/TODO
index 142a7bb..eb100b6 100644
--- a/TODO
+++ b/TODO
@@ -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
#
diff --git a/variables b/variables
index e3eb451..72f3fb3 100644
--- a/variables
+++ b/variables
@@ -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.