f6e8863128
backup: adjust email formatting
2021-10-26 21:37:53 -04:00
f14b0d2d4d
backup.py: fix notification error
2021-10-26 16:00:46 -04:00
46f9f98860
backup: show errors at top of email notification
2021-10-26 13:24:39 -04:00
cb12e09c46
backup: rework output to make notification emails easier to read
2021-10-26 13:20:21 -04:00
1115d1f821
backup: rename pstr() helper to b2s()
...
The helper is just bytes->str conversion with errors=backslashreplace,
which we can use for more than just paths.
2021-10-26 12:54:41 -04:00
51c5b5e9ca
backup: fix prune archive name
2021-10-19 12:28:20 -04:00
ed8ea15aa7
backup: only prune archives that match default naming pattern
2021-10-19 12:18:46 -04:00
481e01896b
backup: fix issue with ignoring "changed while we backed it up" warnings
2021-10-19 12:14:42 -04:00
e85e08cace
backup: call prune after backup; add run_borg helper
...
Automatically prunes after backup, although this doesn't actually
free up space (because we're in append-only mode).
2021-10-19 11:16:17 -04:00
4b7802ad5f
backup: flush stderr after all writes
2021-10-18 19:35:39 -04:00
4a30b82e39
backup: replace simple max size with rule-based system
...
Now individual files or patterns can have their own maximum sizes.
2021-10-18 17:43:33 -04:00
ac12b42cad
backup: rename force-include to unexclude
...
Force-include is a misnomer because it won't include files
that weren't considered at all (like files in an excluded subdir).
Instead, call it "unexclude" to make it slightly clearer that this
will just override the exclusions.
2021-10-18 16:25:23 -04:00
16fe205715
backup: remove pathnames from progress output
...
It clutters up the output and isn't super useful
2021-10-18 15:03:32 -04:00
81d430b56b
backup: print exceptions from reader thread
2021-10-17 20:02:46 -04:00
2d89e530be
backup: split handling of log_message and progress_message
2021-10-17 20:01:55 -04:00
3024cf2e69
backup: stop main thread if reader thread dies unexpectedly
...
_thread.interrupt_main will trigger KeyboardInterrupt in the main thread.
2021-10-17 20:00:55 -04:00
a540f4336f
backup: fix nonlocal variable issue with errors
2021-10-17 19:31:56 -04:00
643f41d7f7
backup: tweak types for python 3.7 compatibility
2021-10-17 19:31:36 -04:00
2b81094a32
backup: fix borg exit code handling for ret=0
2021-10-17 01:05:03 -04:00
e7b0320c9f
backup: fix ignoring of harmless borg warnings
2021-10-17 00:55:49 -04:00
a18b9ed6d0
backup: track errors/warnings from borg; add prefix to them
...
This also ignores the "file changed while we backed it up" error, because
that isn't important enough to warrant sending an email.
2021-10-17 00:16:43 -04:00
756dbe1898
backup: fix mypy-detected errors
2021-10-17 00:14:14 -04:00
2caceedea7
backup: show detailed progress from borg
2021-10-16 23:40:36 -04:00
f2b47dcba2
backup: parse vars.sh and use hostname from that
2021-10-16 18:52:34 -04:00
979dfd892f
backup: revert to catching fewer exceptions
...
We specifically don't want to catch BrokenPipeError; just list
file-related ones that we might expect to see if we hit bad
permissions, disk errors, or race conditions.
2021-10-16 09:37:04 -04:00
aff447c1b6
notify: fix notify.sh to work with server side; adjust text
2021-10-16 09:37:03 -04:00
d168c5bf54
backup: catch all OSError exceptions while accessing files
...
We might see these if files change during the scan, for example.
2021-10-16 09:37:03 -04:00
31d88f9345
backup: print final results and run notification script on error
2021-10-16 09:37:03 -04:00
ccf54b98d7
backup: fix archive name
...
Was overly quoted from when this was a shell script
2021-10-16 09:37:03 -04:00
59ad2b5b4d
backup: capture borg output for later reporting
2021-10-16 09:37:03 -04:00
0c74f1676c
backup: add bold option to log(); simplify logic
2021-10-16 09:37:03 -04:00
5e06ebd822
backup: change some warnings into errors
2021-10-16 09:37:03 -04:00
43ceb39120
backup: support multiple roots; remove "relative absolute path" nonsense
...
Support multiple roots in config file, not just one.
The absolute path stuff before would match against exclusions/inclusions
based on paths from the root dir, but that doesn't make sense when we
have multiple roots, and added needless complexity.
2021-10-14 12:33:07 -04:00
35c72e7ce6
backup: calculate size only once
...
We need to calculate size so we get an idea of actual used disk space
(which is closer to how much maximum space will be used in the backup,
in case files have huge holes). Calculate it once to avoid errors.
2021-10-14 12:33:07 -04:00
27213033a2
backup: use decorated paths for matching patterns
...
By ensuring that directory names end in '/', the behavior of
"match only directories if the pattern ends with /" comes for
free based on how wcmatch.glob works, so we don't need to run
the regex match twice.
2021-10-14 12:33:07 -04:00
5152a316c6
backup: use helper to format binary paths as strings
2021-10-14 12:33:07 -04:00
46195daaaa
Improve borg process spawning and result checking
2021-10-14 12:33:07 -04:00
ffe13a45e6
Add --debug option
2021-10-14 12:33:07 -04:00
738573a292
Fix type issue
2021-10-13 15:02:48 -04:00
4a707968ab
Spawn borg and pass input
2021-10-13 14:58:44 -04:00
356f6db2ca
Remove debug prints
2021-10-13 14:46:58 -04:00
e82d40bbfb
Fix some exclude/include path issues; misc setup improvements
2021-10-13 14:38:47 -04:00
22b663fa61
Rework how exclude/include pattern matching works a bit
2021-10-13 11:48:53 -04:00
863b7acc9b
Add arg to specify borg program
2021-10-13 10:17:28 -04:00
0f56415493
Use actual file blocks rather than apparent size; doc updates
2021-10-11 23:30:53 -04:00
0039ca1ee0
Implement filesystem scanning with configurable filters
2021-10-11 16:50:08 -04:00
6978cfc012
Continue reworking towards local copy of borg, etc
2021-10-11 12:34:57 -04:00