Commit Graph

47 Commits

Author SHA1 Message Date
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