Compare commits

...

1,252 commits

Author SHA1 Message Date
fdb353d358 Bump version for release. 2023-11-19 21:14:56 -08:00
3b99f7c75a Constants support includes and command-line overrides (#745, #782) 2023-11-19 21:13:35 -08:00
8b9abc6cf8 Documentation clarifications (#791). 2023-11-15 09:05:52 -08:00
da034c316a Add another mention of "skip_actions" to the docs (#701). 2023-11-08 18:22:17 -08:00
08d01d8bcd Documentation formatting. 2023-11-08 17:57:31 -08:00
eef69e23ee Document the possible units of times for a configured check frequency. 2023-11-08 17:53:59 -08:00
26bb54a9dd Remove broken link in documentation (#786). 2023-11-08 10:26:09 -08:00
715e2ac127 Add test support for Python 3.12. 2023-11-07 10:17:55 -08:00
f39cea4abf Remove additional Python 3.7-isms (#784). 2023-11-07 10:17:16 -08:00
22101bdd49 Drop support for Python 3.7, which has been end-of-lifed (#784). 2023-11-07 10:11:29 -08:00
13cf863d89 Fix tests (#783). 2023-11-07 10:09:31 -08:00
dcf25fa041 Upgrade ruamel.yaml dependency to support version 0.18.x (#783). 2023-11-07 10:00:13 -08:00
12b75f9075 Update documentation about logging changes from version 1.8.3 (#665). 2023-11-06 21:13:46 -08:00
9baf06a2f7
Fix typo.
Typo
2023-11-04 08:56:39 -07:00
tdltdc
56302e22cd
Typo 2023-11-04 15:05:19 +01:00
6cc93c4eb9 Fix environment variable interpolation within configured repository paths (#782). 2023-11-03 21:16:04 -07:00
2da43239f6 Fix docs: minor typos (#781).
Reviewed-on: borgmatic-collective/borgmatic#781
2023-11-03 00:59:29 +00:00
4beef36d3c Update docs/how-to/inspect-your-backups.md 2023-11-02 23:14:31 +00:00
eacfbd742b Typo 2023-11-02 23:13:45 +00:00
82a85986b6 Typo 2023-11-02 22:57:46 +00:00
ef448e2dd1 Add a "skip_actions" option to skip running particular actions (#701). 2023-10-31 21:54:41 -07:00
c3efe1b90e Only parse "--override" values as complex data types when they're for options of those types (#779). 2023-10-29 19:02:28 -07:00
d85c1ee216 Correct changelog addition (#779). 2023-10-29 16:25:40 -07:00
b47088067c Add a "--match-archives" flag to the "check" action (#779). 2023-10-29 16:22:39 -07:00
c5732aa4fc Fix home page CSS layout to prevent overflow at certain window widths (#777). 2023-10-27 14:12:35 -07:00
a0323d9d6c Bump version for release. 2023-10-26 22:20:26 -07:00
8ad7b473f1 When an archive filter causes no matching archives for the "rlist" or "info" actions, warn (#748). 2023-10-26 22:12:13 -07:00
895a0ccb3c Upgrade to tox 4. (Now a minimum requirement.) 2023-10-23 17:39:27 -07:00
257ab77bea Disallow the "--dry-run" flag with the "borg" action (#774). 2023-10-23 17:23:04 -07:00
dccaa4014b
Update systemd service example with better filesystem protection options.
Merge pull request #78 from Alphix/update-systemd-service
2023-10-15 08:59:39 -07:00
David Härdeman
2f3c0bec5b Update systemd .service example
First, ProtectSystem=strict will make the entire file system hierarchy (except
/dev, /proc/ and /sys) read-only, so separate ReadOnlyPaths= is not necessary.

Second, ProtectHome=tmpfs will not just mount an empty tmpfs on /root, but also
on /home and /run/user. As it's likely quite common to want to backup /home,
this seems like a footgun.

Finally, it's quite likely that borgbackup will want access to root's SSH keys
in order to connect to remote backup servers.

Note that all these options are commented out by default, so this is more of
a documentation change than any real change in functionality.
2023-10-15 11:30:11 +02:00
487d8ffd32 Fix normalization of deprecated sections to support empty sections without erroring (#771). 2023-10-14 13:04:18 -07:00
30523a7c89 Update home page example of Healthchecks configuration not to use deprecated config. 2023-10-11 12:56:21 -07:00
77b1907d03 Update Healthchecks deprecation warning message for clarity. 2023-10-11 12:17:57 -07:00
09594c85bf Be more explicit in documentation that you don't have to use an environment variable for passphrases. 2023-10-10 09:34:55 -07:00
e07efdf68f Add documentation note about using includes for specifying passphrases (#769). 2023-10-10 09:16:58 -07:00
1fed44f905 Add documentation note about sudo and sudoers "secure_path" option (#757). 2023-10-09 14:15:54 -07:00
c687dafdd2 Fix a traceback when an invalid command-line flag or action is used (#768). 2023-10-06 21:00:23 -07:00
3eff2c4248 Add Grafana Loki badge to integrations documentation. 2023-10-05 09:06:06 -07:00
d94fdb6faf Add apprise logo to integrations in readme (#715).
Reviewed-on: borgmatic-collective/borgmatic#765
2023-10-05 15:51:04 +00:00
a83282faf0 add apprise logo to integrations in readme 2023-10-05 15:38:32 +02:00
e7169f6fb2 Upgrade certifi test dependency to fix security alert. 2023-10-04 22:59:15 -07:00
9587fc2366 Update Apprise documentation to use sudo for pipx install (#715). 2023-10-04 22:54:11 -07:00
5f06884d5a Fix Apprise/PyYAML end-to-end test breakage (#715). 2023-10-04 22:51:05 -07:00
f011431463 Apprise hook documentation (#715). 2023-10-04 19:23:53 -07:00
9e14f209f1 Merge branch 'main' of ssh://projects.torsion.org:3022/borgmatic-collective/borgmatic 2023-10-04 14:58:48 -07:00
9d34d2eec5 Support for Apprise (#759).
Reviewed-on: borgmatic-collective/borgmatic#759
2023-10-04 21:58:20 +00:00
7a9625cd44 fix PR comments 2023-10-04 13:19:40 +02:00
4763c323d0 add unit tests for apprise hook 2023-10-01 16:59:59 +00:00
eaa22be3db fix PR comments 2023-10-01 16:59:59 +00:00
a587e207f9 pin Apprise dependencies for test requirements 2023-10-01 16:59:59 +00:00
db8079b699 fix typo in setup.py
handle if apprise cannot be imported
2023-10-01 16:59:59 +00:00
5a989826a1 convert map to list for apprise function call
fix apprise config schema
remove apprise from required dependencies
2023-10-01 16:59:59 +00:00
21f4266273 incorporate PR review comments 2023-10-01 16:59:59 +00:00
e7252c7545 remove comments about tags 2023-10-01 16:59:59 +00:00
86011c8418 default apprise notify type per borgmatic state 2023-10-01 16:59:59 +00:00
f3295ccb4a add support for apprise 2023-10-01 16:59:59 +00:00
cacb81f086 Bump version for release. 2023-09-30 13:37:10 -07:00
06c2154e6a Build docs regardless of Drone "event" (push, etc.). 2023-09-29 19:49:09 -07:00
ac1e1a9407 Simplify logging logic (#665). 2023-09-29 14:16:47 -07:00
10933fd55b Fix for borgmatic not stopping Borg immediately when the user presses ctrl-C (#761). 2023-09-27 08:52:00 -07:00
af422ad705 Add documentation note about upgrading multiple pipx installations of borgmatic. 2023-09-18 13:46:41 -07:00
d9d35491fb Fix tense typo. 2023-09-17 23:25:57 -07:00
b540e63c0e Updated documentation so "sudo borgmatic" works for pipx borgmatic installations (#757). 2023-09-17 22:46:33 -07:00
5a56208922 Fix documentation typo. 2023-09-15 10:18:35 -07:00
5912769273 Fix error handling to log command output as one record per line (#754). 2023-09-14 21:10:52 -07:00
bac2aabe66 Attempt to unbreak ticket filing. 2023-09-12 09:50:38 -07:00
9f3328781b When "archive_name_format" is not set, filter archives using the default archive name format (#753). 2023-09-06 23:13:40 -07:00
0205748db8 Update documentation to recommend installing/upgrading borgmatic with pipx instead of pip. 2023-09-04 16:25:10 -07:00
d0a8251ad2 Add borgmatic version introducing Loki hook to docs (#743). 2023-08-27 20:30:13 -07:00
32019ea8f3 Add documentation for Grafana Loki hook (#743). 2023-08-25 10:52:00 -07:00
fa9a061033 Merge branch 'main' of ssh://projects.torsion.org:3022/borgmatic-collective/borgmatic 2023-08-25 09:29:02 -07:00
b3d2560563 Added support for grafana loki (#743).
Reviewed-on: borgmatic-collective/borgmatic#747
2023-08-25 16:28:19 +00:00
4b4f56da42 Fix another database -> data source instance (#685). 2023-08-24 14:00:29 -07:00
b96d1898f7 Prep work for eventual container-dumping hooks: Generalize internal database hook "API" (#685). 2023-08-24 13:50:10 -07:00
099a712e53 Added more documentation to the test
Split tests to integration tests
2023-08-24 13:17:42 +02:00
9e2674ea5a Added unit tests
Removed useless dry run check
2023-08-23 17:17:23 +02:00
7e419ec995 Fixed spelling errors
Added documentation
Added log messages for dry run
2023-08-22 23:03:14 +02:00
a3edf757ee Added changes of formatting tools 2023-08-22 13:40:05 +02:00
e576403b64 Added support for grafana loki 2023-08-22 03:13:39 +02:00
7313430178 Make warning about sections a little more explicit (#721). 2023-08-19 22:51:20 -07:00
962daaa8b9 Bump version for release. 2023-08-14 12:54:38 -07:00
cd51e9c1ea Fix for database "restore" action not actually restore anything (#738). 2023-08-14 12:43:21 -07:00
6dca7c1c15 Add "key export" action to export a copy of the repository key (#345). 2023-08-07 12:28:39 -07:00
fd8c56c6be Add brief source code reference documentation. 2023-08-06 23:44:31 -07:00
065057c966
Fix typos.
Merge pull request #77 from hop/main
2023-08-05 17:19:57 -07:00
c04517f843 Fix typos. 2023-08-06 02:16:31 +02:00
5d80c366fb Fix "borg create" flags/argument interleaving. 2023-08-04 20:02:09 -07:00
193dd93de2 Fork a MariaDB database hook from the MySQL database hook (#727). 2023-08-04 13:22:44 -07:00
8a94b9e2f1 Mention "store_config_files" in docs (#725). 2023-08-03 22:11:02 -07:00
3c8f6040e2 Bump version for release. 2023-08-03 21:56:26 -07:00
14e2a6b89d Omit "--glob-archives" or "--match-archives" Borg flag when its value would be "*" (#734). 2023-08-02 10:23:22 -07:00
e607de7df1 Include multiple configuration files with a single "!include" (#732).
Reviewed-on: borgmatic-collective/borgmatic#737
2023-08-02 04:46:33 +00:00
e9bd5f4e1d Add documentation and NEWS link (#732). 2023-08-01 21:12:49 -07:00
175003ff9b Additional test coverage (#732). 2023-08-01 19:45:01 -07:00
b8d349d048 Additional test coverage (#732). 2023-08-01 16:27:53 -07:00
f6f06551f0 Multiple configuration includes with a single "!include" (#732). 2023-08-01 14:12:35 -07:00
69771fe7ce Add "store_config_files" option to NEWS (#725). 2023-07-31 14:04:00 -07:00
c5c3e2e0ce Code formatting (#725). 2023-07-31 14:01:20 -07:00
8491b2c416
Feat: optionally disable config bootstrap (#725).
Merge pull request #75 from diivi/feat/disable-config-bootstrap
2023-07-31 14:00:00 -07:00
962267b3c5 add test for checking manifest creation 2023-08-01 02:26:36 +05:30
562f4a281b add test 2023-08-01 02:01:15 +05:30
6b09ca8022 exclude configs too and not just the manifest 2023-08-01 01:51:37 +05:30
f2ce2f387f feat: optionally disable config bootstrap 2023-08-01 01:32:06 +05:30
782a9bb70a Add new documentation to NEWS (#326, #697). 2023-07-31 12:19:19 -07:00
88adb5b3de
Add docs for database restore params and config bootstrap (#326, #697).
Merge pull request #74 from diivi/docs/database-restore-params-and-config-bootstrap
2023-07-31 11:56:32 -07:00
59465b256d
Apply suggestions from code review 2023-07-31 23:50:46 +05:30
adfb89ee65 improve docs - wittens suggestions 2023-07-29 00:16:04 +05:30
c11dcdef0a Fix some "borgmatic" capitalization issues. 2023-07-26 23:38:08 -07:00
8a2514915c Fix for Borg's interactive prompt on the "check --repair" action automatically getting answered "NO" (#730). 2023-07-22 15:25:55 -07:00
4d7a2876a5 Fix for "prune" action error when using the "keep_exclude_tags" option in configuration (#728). 2023-07-22 10:26:52 -07:00
309f67e860 Fix documentation comma grammar issues. 2023-07-18 23:27:45 -07:00
0ad7b4f408 Bump version for release. 2023-07-18 22:50:09 -07:00
1f415a24b8 add docs for database restore params and config bootstrap 2023-07-15 12:27:54 +05:30
5c941600a6 Clarify database version description. 2023-07-14 22:25:45 -07:00
5e0283b391 Remove broken markdown item. 2023-07-14 22:24:21 -07:00
ac0b23901b Satisfy Gitea validation. 2023-07-14 22:23:41 -07:00
cde50a75e9 Attempt to add some vertical whitespace for clarity. 2023-07-14 22:23:06 -07:00
521c0eb600 Fix text areas in issue templates. 2023-07-14 22:17:39 -07:00
bc5dc2253c Convert issue templates from Markdown to YAML to take advantage of forms. 2023-07-14 22:16:04 -07:00
973ab01afb Disable submitting issues without a template. 2023-07-14 20:10:20 -07:00
9413a19eca Try out multiple Gitea templates. 2023-07-14 20:06:22 -07:00
0055de08a4 Merge branch 'main' of ssh://projects.torsion.org:3022/borgmatic-collective/borgmatic 2023-07-13 20:21:42 -07:00
04fb351a11 Order documentation navigation sections. 2023-07-13 20:20:48 -07:00
e913cddcd1 Remove configuration sections (#723).
Reviewed-on: borgmatic-collective/borgmatic#723
2023-07-14 03:10:51 +00:00
da78929415 To prevent argument parsing errors on ambiguous commands, drop support for multiple consecutive flag values. 2023-07-13 19:25:14 -07:00
18b3b569d0 Fix broken bootstrap action (#721). 2023-07-12 09:39:45 -07:00
054bd52482 Fix incorrect merge from main that broke tests (#721). 2023-07-11 22:16:42 -07:00
2453ecad42 More documentation updates based on section removal (#721). 2023-07-11 22:10:57 -07:00
cedf562a7e Merge branch 'main' into remove-sections 2023-07-11 20:05:16 -07:00
5b991b88dd Rewrite documentation navigation URLs when being run locally. 2023-07-11 19:58:49 -07:00
d2fa205476 Update documentation for section removal (#721). 2023-07-11 19:42:14 -07:00
ecd9e62147 Fix last end-to-end database test (#721). 2023-07-11 00:37:36 -07:00
003d4eac93 Remove extra argument (#721). 2023-07-10 11:41:43 -07:00
e8dbca9d68 Truncate long command output without assuming an encoded byte string. 2023-07-10 11:16:18 -07:00
bd9d592560 Truncate long command error output. 2023-07-10 10:20:51 -07:00
196a226a7e Add "check_i_know_what_i_am_doing" option to NEWS (#724). 2023-07-10 09:44:00 -07:00
a3f47a6418 Remove some sections from tests (#721). 2023-07-10 09:38:28 -07:00
d29667ca3c Add a config entry for BORG_CHECK_I_KNOW_WHAT_I_AM_DOING env var (#724).
Reviewed-on: borgmatic-collective/borgmatic#724
2023-07-10 16:38:09 +00:00
7d18f59079 Add a config entry for BORG_CHECK_I_KNOW_WHAT_I_AM_DOING env var 2023-07-10 10:36:56 +02:00
ab351548d2 Fix (some) end-to-end tests (#721). 2023-07-09 17:40:02 -07:00
48b6a1679a Remove sections (#721). 2023-07-08 23:14:30 -07:00
9cafc16052 For "borgmatic borg", pass the repository to Borg via a Borg-supported environment variable (#575). 2023-07-03 00:08:54 -07:00
fbbfc684ce Add referral link for Hetzner. 2023-07-02 22:14:36 -07:00
13a37a1d9b Reddit is dead. 2023-06-30 22:55:47 -07:00
9cf27fa4ba Deprecated configuration options warning logging. 2023-06-29 10:03:36 -07:00
e2c95327fb Fix an error when dumping a MySQL database and the "exclude_nodump" option is set (#720). 2023-06-28 09:15:11 -07:00
f60e97d5bf When merging two configuration files, error gracefully if the two files do not adhere to the same format. 2023-06-26 16:46:09 -07:00
44f9ab95f9 Fix typos (#575). 2023-06-26 14:37:23 -07:00
bb6004fc4f Revamp "borg" action to support REPOSITORY and ARCHIVE env vars instead of implicitly injecting repository/archive into the Borg command (#575). 2023-06-26 14:35:07 -07:00
b242078f54 Fix an error when running "borg key export" through borgmatic (#719). 2023-06-26 09:30:46 -07:00
c3004c6090 Some brief documentation on running only checks (#364). 2023-06-25 22:49:36 -07:00
b9a11e860d Remove legacy configuration parsing code, no longer needed with upgrade-borgmatic-config gone (#529). 2023-06-25 15:36:25 -07:00
37a0a0c421 Bump version for release. 2023-06-24 22:23:01 -07:00
325b561296 Switch from "init" to "rcreate" for creating repos in end-to-end tests. 2023-06-24 15:52:20 -07:00
b62017be4b Fix edge case in which "--config somepath.yaml" followed by an action alias (e.g. init for rcreate) wasn't parsed correctly (#716). 2023-06-24 15:35:10 -07:00
8debcbeaba Remove duplicated tests (#716). 2023-06-24 14:28:50 -07:00
35a11559ac Fix error parsing arguments with multiple verbosity flags (#716). 2023-06-24 14:10:47 -07:00
e4e455ee45 Deprecate validate-borgmatic-config in favor of new "config validate" action (#529). 2023-06-23 10:11:41 -07:00
23809e9060 More Docker build fun (#326). 2023-06-22 15:11:49 -07:00
bb0dd14f69 Attempt to fix CI test failures (#326). 2023-06-22 14:55:32 -07:00
308c96aeb5 Add comment describing need for dev-CI parity test. 2023-06-22 14:37:08 -07:00
62a2f5a1d0 Code formatting. 2023-06-22 14:25:26 -07:00
e8c862659c Add missing services to build service configuration and add a test to catch this in the future (#326). 2023-06-22 14:20:42 -07:00
69611681e2 Add database restore overrides to NEWS, add a test, and move some tests (#326). 2023-06-22 12:40:57 -07:00
9e0df595c8 Merge branch 'main' of github.com:borgmatic-collective/borgmatic 2023-06-22 12:29:32 -07:00
68d90e1e40
feat: allow restoring to different port/host/username (#326).
Merge pull request #73 from diivi/feat/restore-with-different-hostname-port-username
2023-06-22 12:28:34 -07:00
248500c7be Accidentally a word. 2023-06-22 09:21:06 -07:00
3addb60fb8 Actually link to the most recent version. 2023-06-22 09:13:45 -07:00
01fffab898 Clarify that references docs are only for the most recent version of borgmatic. 2023-06-22 09:12:06 -07:00
bc93401a70 Codespell fixes. 2023-06-21 13:14:54 -07:00
1b90da5bf1 Deprecate generate-borgmatic-config in favor if new "config generate" action (#529). 2023-06-21 12:19:49 -07:00
803fc25848 Add a test for another edge case (#712). 2023-06-21 10:47:53 -07:00
248f82d6f6 Fix for another subaction argument-parsing edge case (#712). 2023-06-21 10:41:32 -07:00
87c6e5b349 make sure restore params in config aren't used when cli args are supplied 2023-06-21 00:03:07 +05:30
147516ae3f Remove additional upgrade-borgmatic-config code (#529). 2023-06-20 09:41:26 -07:00
b10aee3070 Remove upgrade-borgmatic-config command for upgrading borgmatic 1.1.0 INI-style configuration (#529). 2023-06-19 23:17:59 -07:00
6098005f5d Fix an error when "data" check time files are accessed without getting upgraded first (#711, #713). 2023-06-19 23:07:57 -07:00
7b8be800a4 Refactor arguments parsing to fix bootstrap action CLI issues (#712). 2023-06-19 16:18:47 -07:00
1a21eb03cd add tests for all databases 2023-06-20 00:52:01 +05:30
e2d82e9bba actually test port restores 2023-06-19 01:10:01 +05:30
384182172a add unit tests for cases when cli/config restore args are used 2023-06-18 06:29:11 +05:30
9016dcc418 all e2e tests 2023-06-18 05:47:35 +05:30
e53dd3da87 fix witten reported mysql error 2023-06-17 22:58:59 +05:30
6c87608548 add tests for password logic 2023-06-17 00:47:15 +05:30
ee2ebb79b8 Find sub-actions for an action without an isinstance() check. 2023-06-16 10:57:01 -07:00
89602d1614 pass all existing tests (and formatting) 2023-06-16 15:14:00 +05:30
c294e78715 Use absolute paths when storing configuration files in an archive for later bootstrapping (#697). 2023-06-15 21:45:43 -07:00
9152fed249 Add a documentation troubleshooting note for MySQL/MariaDB authentication errors (#399). 2023-06-15 14:55:57 -07:00
8389851f2f fix bug where port becomes truthy when none is converted to str 2023-06-15 23:34:50 +05:30
bbc7f0596c Fix Bash completion for sub-actions like "borgmatic config bootstrap" (#697 follow-on work). 2023-06-15 10:55:31 -07:00
82d851d891 add argument for restore path 2023-06-15 23:05:53 +05:30
62b6f13299 add restore-path support for sqlite 2023-06-15 23:02:09 +05:30
b7423c488e refactor password assignment logic 2023-06-15 22:54:06 +05:30
1d7c7eaaa7 Add sample systemd user serivce for running borgmatic as a non-root user (#669). 2023-06-14 14:57:57 -07:00
a9386b7a87 add mongodb support, and sqlite restore path (config option only) 2023-06-15 02:18:24 +05:30
205e5b1524 mysql support 2023-06-15 01:47:46 +05:30
67f4d43aec witten review 2023-06-15 01:37:18 +05:30
e15bec30e6 Mention some hang edge cases in database limitations (#710). 2023-06-13 23:34:58 -07:00
230cf6adc4 support command line args for hostname port username password 2023-06-14 00:11:19 +05:30
8e8e64d920 add no-owner and refactor 2023-06-13 23:42:50 +05:30
f558cb3156 feat: allow restoring to different port/host/username 2023-06-12 21:54:39 +05:30
41924f2400 A little activism. 2023-06-11 09:50:57 -07:00
670bdffb3c Code formatting. 2023-06-10 19:25:49 -07:00
691d4f887a Fix incorrect log message (#697). 2023-06-10 16:02:03 -07:00
beb899d6fb Make user-facing manifest loading error messages a little friendlier (#697). 2023-06-10 15:50:11 -07:00
0f9756e739 Fix failing test and add "bootstrap" action to CLI reference docs (#697). 2023-06-10 15:17:18 -07:00
d84f1ec616 Add bootstrap action to NEWS and make post-PR tweaks (#697). 2023-06-10 14:52:00 -07:00
ef409ad23c
Store configs used to create an archive in the archive and add borgmatic bootstrap (#697).
Merge pull request #71 from diivi/feat/store-config-in-archive
2023-06-10 14:39:53 -07:00
d370ff958d mock expand directories thrice 2023-06-10 01:05:34 +05:30
197920d9ef improve tests and some docstrings. 2023-06-09 17:31:57 +05:30
425f260a22 test parser merging 2023-06-09 04:15:18 +05:30
3315555d06 cleaner test 2023-06-09 00:21:41 +05:30
6475345a8f attempt to test parse_subparser_arguments 2023-06-08 01:02:43 +05:30
f90d30e0e1 remove duplicate comments 2023-06-08 00:08:39 +05:30
8384eaefb1 reformat 2023-06-08 00:07:36 +05:30
dcb90bba50 some tests remaining 2023-06-07 23:56:02 +05:30
dc56fd33a0 formatting 2023-06-07 01:47:16 +05:30
2d761dd86b coverage at 100 2023-06-07 01:43:01 +05:30
f82631e3bb tests for arguments.py 2023-06-07 00:56:19 +05:30
4b024daae0 pass all tests with wittens recommendation 2023-06-06 23:37:09 +05:30
6a1d1a2e59 fix indentation error that caused too many test failures 2023-06-05 20:31:09 +05:30
206a9c9607 edit schema comments and work on witten review 2023-06-05 20:05:10 +05:30
a6425b8867 Fix moved Arch Linux borgmatic URL. 2023-06-04 22:21:16 -07:00
b5d9398910 Stop uploading GPG signatures to pypi since it no longer supports them. 2023-06-03 22:37:46 -07:00
a185eb73b0 Fix GitHub release script now that "master" has been renamed to "main". 2023-06-03 22:26:49 -07:00
e80f27f922 Bump version for release. 2023-06-03 22:14:21 -07:00
1a5b3c9e4e Add Fedora schema loading fix to NEWS (#703). 2023-06-03 22:07:24 -07:00
b3f70434df Fix error loading configuration schema on Fedora Linux (#703).
Reviewed-on: borgmatic-collective/borgmatic#702
2023-06-04 05:04:41 +00:00
c61d63b235 Use open() to test for file existance and readability
Signed-off-by: Felix Kaechele <felix@kaechele.ca>
2023-06-04 00:54:29 -04:00
ba0899660d Verify that schema path exists before returning it
Signed-off-by: Felix Kaechele <felix@kaechele.ca>
2023-06-03 23:42:20 -04:00
15cabb93ca Drop importlib_metadata entirely
The fallback option using the dirname of the config module location
seems to be more robust in a number of cases.

Signed-off-by: Felix Kaechele <felix@kaechele.ca>
2023-06-03 23:42:20 -04:00
ce6daff12f Fix importlib.metadata.files workaround
Some distributions, such as Fedora, do not install the RECORDS file as
part of a package's dist-info. As a result importlib.metadata.files will
return None.

Use the workaround for these cases as well.

Signed-off-by: Felix Kaechele <felix@kaechele.ca>
2023-06-03 23:42:20 -04:00
caf654366c Document work-around for colons in YAML strings (#708). 2023-06-03 10:19:34 -07:00
bb60b25399 merge subparsers and refactor 2023-06-02 02:04:35 +05:30
74aa28e027 support more flags 2023-06-01 16:53:34 +05:30
4f49b345af NEWS wording fix for clarity (#706). 2023-05-30 23:21:55 -07:00
1784ca5910 Fix "check" action error when repository and archive checks are configured but the archive check gets skipped due to the configured frequency (#704). 2023-05-30 23:19:33 -07:00
8f4cce5fa5 Make dev docs message stand out a little more. 2023-05-30 22:30:06 -07:00
518aeabb2a Document verbosity levels (#484). 2023-05-30 22:25:27 -07:00
341bd4118d Fix "--archive latest" on "list" and "info" actions only working on the first of multiple configured repositories (#706). 2023-05-30 16:53:55 -07:00
b222f6a60b Mention new verbosity level to NEWS (#484). 2023-05-30 15:52:49 -07:00
c0aaba6891 Add option to disable syslog output (#484).
Reviewed-on: borgmatic-collective/borgmatic#675
2023-05-30 20:03:56 +00:00
a7f81d538d nit changes
- help strings in borgmatic commands
- test fixes in test_logger and test_borgmatic

Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-05-29 01:09:00 +05:30
4c60bf84d7 extract config files 2023-05-28 01:36:32 +05:30
dbb778a4d6 finish parsing and add error for empty config subcommand 2023-05-26 22:44:31 +05:30
f4a169fdf3
Merge pull request #2 from witten/feat/store-config-in-archive 2023-05-26 21:29:18 +05:30
3d41ed3a34 add test to check that log_file is disabled
if logging is disabled

Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-05-26 09:58:53 +05:30
0283f9ae2a fix help string
Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-05-26 08:57:12 +05:30
d556a23f97 update borgmatic tests
Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-05-26 08:57:12 +05:30
f98d07e8d8 fix logger test
Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-05-26 08:57:12 +05:30
09f59ad97d disable monitoring hooks if monitoring_log_level is set to DISABLED
Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-05-26 08:57:12 +05:30
24be6272ed add test for logger
Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-05-26 08:57:12 +05:30
5a9bb4b97f update help strings
Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-05-26 08:57:12 +05:30
6a2eb1f157 make value of disabled level higher
so that no other log has higher priority

Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-05-26 08:57:12 +05:30
99473c30a8 disable sending logs in Healthchecks
Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-05-26 08:57:12 +05:30
f512d1e460 add verbosity level -2
Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-05-26 08:57:12 +05:30
96adee444b Potential fix for nested subparsers not parsing correctly. 2023-05-25 15:03:15 -07:00
8b7996dfda removed parents and used reversed remaining_args 2023-05-26 01:07:11 +05:30
2241de11c0 start work on borgmatic config bootstrap command 2023-05-26 00:26:13 +05:30
84c21b062f Fix incorrect argument ordering (#659). 2023-05-23 16:55:40 -07:00
76138faaf3 Add integration test for mount action (#659). 2023-05-23 14:49:04 -07:00
9299841a5b Add date-based matching flags to NEWS (#659). 2023-05-23 14:30:16 -07:00
35b5c62ca6 Add Borg 2 date-based matching flags for archive selection (#659).
Reviewed-on: borgmatic-collective/borgmatic#661
2023-05-23 21:26:17 +00:00
05b989347c Upgrade requests test requirement (security). 2023-05-23 08:43:45 -07:00
00e9bb011a test should mock out make_flags_from_arguments
Signed-off-by: Chirag Aggarwal <thechiragaggarwal@gmail.com>
2023-05-20 09:23:09 -04:00
833796d1c4 Add archive check probing logic tweak to NEWS (#688). 2023-05-17 08:48:54 -07:00
ee32b076eb update tests and formatting 2023-05-16 23:17:35 +05:30
e3425f48be Instead of taking the first check time found, take the maximum value (#688) 2023-05-16 10:20:52 -07:00
79b094d035 Bump version for release. 2023-05-16 09:59:09 -07:00
b45e45f161 Partial conversion of showing repository labels in logs instead of paths (part of #635). 2023-05-16 09:36:50 -07:00
b10148844b change config_paths var name to used_config_paths to avoid collisions 2023-05-16 14:00:23 +05:30
ba845d4008 Codespell saves the day. 2023-05-15 23:25:13 -07:00
645d29b040 Fix archive checks being skipped even when particular archives haven't been checked recently (#688). 2023-05-15 23:17:45 -07:00
49b4d371ce create and add content to borgmatic-manifest.json 2023-05-16 00:24:19 +05:30
1bc7bb4971 feat: store configs used to create an archive in the archive 2023-05-15 23:04:42 +05:30
e66e449c3b Merge branch 'main' of ssh://projects.torsion.org:3022/borgmatic-collective/borgmatic 2023-05-14 12:51:23 -07:00
8eb05b840a Log a warning when "borgmatic borg" is run with an action that borgmatic natively supports (#694). 2023-05-14 09:59:28 -07:00
f0fc638284 Docs: add Gentoo Linux to other ways to install (#696).
Reviewed-on: borgmatic-collective/borgmatic#696
2023-05-13 16:33:11 +00:00
c6126a9226 Docs: add Gentoo Linux to other ways to install 2023-05-13 11:22:47 +00:00
62b11ba16b Docs: add Gentoo Linux to other ways to install 2023-05-13 11:20:47 +00:00
403ae0f698 Clarify configuration comment about source_directories also accepting files (#693). 2023-05-09 10:14:03 -07:00
92a2230a07 Add support for logging each log line as a JSON object via global "--log-json" flag (#680). 2023-05-08 23:00:49 -07:00
b3b08ee6d7 Fix error in "borgmatic restore" action when the configured repository path is relative (#691). 2023-05-07 21:21:35 -07:00
15ef37d89f Add test coverage for exact_options_completion() raising (#686). 2023-05-06 16:25:26 -07:00
e84bac29e5 Remove value type for compatibility with Python 3.8 (#686). 2023-05-06 16:18:37 -07:00
1a956e8b05 Add fish shell completions to NEWS (#686). 2023-05-06 16:04:15 -07:00
4aae7968b8
Add fish shell completions support (#686).
Merge pull request #70 from isaec/feat/fish-completions
2023-05-06 16:00:25 -07:00
66964f613c
formatting! 2023-05-06 15:56:50 -07:00
614c1bf2e4
rename test to make function under test clearer 2023-05-06 15:52:42 -07:00
aa770b98f9
follow unit test module convention 2023-05-06 15:50:37 -07:00
453b78c852
drop messages 2023-05-06 15:49:07 -07:00
0657106893
clarify dedent test name 2023-05-06 15:46:15 -07:00
43c532bc57
add test for dedent strip 2023-05-06 11:51:35 -07:00
efb81fc2c1
rename last arg helper function to current arg for clarity 2023-05-06 11:42:32 -07:00
c8f4344f89
add more justification to checks 2023-05-06 11:39:02 -07:00
a047f856a1
tweak docstring, add comment 2023-05-06 11:37:38 -07:00
d732059979
fix rotted comments 2023-05-06 11:32:10 -07:00
ccfdd6806f
test the value of completions 2023-05-06 11:29:14 -07:00
aa564ac5fe
fix the error thrown, unit test for it, and add string explanations 2023-05-06 11:25:15 -07:00
77dbb5c499
create way for test cases to be shared 2023-05-06 11:16:45 -07:00
e623f401b9
write more unit tests 2023-05-06 10:56:54 -07:00
372622fbb1
add more doccomments, drop a check 2023-05-06 10:46:27 -07:00
469e0ccace
create doccomments, start writing unit tests 2023-05-06 10:42:06 -07:00
59a6ce1462
replace double quotes with single quotes 2023-05-05 00:03:43 -07:00
5a7a1747f2
add safety check to avoid infinite cat hang 2023-05-05 00:01:45 -07:00
b557d635fd
async validity check 2023-05-04 23:57:37 -07:00
d59b9b817f
support required actions 2023-05-04 23:44:54 -07:00
16ac4824a5
handle typed without default params 2023-05-04 23:42:04 -07:00
3592ec3ddf
dont show deprecated options 2023-05-04 23:32:09 -07:00
8f3039be23
handle the expanding filters better 2023-05-04 23:23:29 -07:00
b4a38d8be9
fix flag showing up for paths 2023-05-04 23:06:11 -07:00
d962376a9d
refactor to only show specific options if possible 2023-05-04 21:58:30 -07:00
193731a017
rename function 2023-05-04 21:14:48 -07:00
bbc3e9d717
show possible choices 2023-05-04 21:12:24 -07:00
639e88262e
create working file completion 2023-05-04 20:17:26 -07:00
f12a10d888
start work on conditional file completion 2023-05-04 19:50:49 -07:00
28efc85660
rearrange to improve legability of the file 2023-05-04 18:11:13 -07:00
f1fd2e88dd
drop blank completion 2023-05-04 13:49:29 -07:00
700f8e9d9c
replace .format with fstring 2023-05-04 13:39:48 -07:00
f04036e4a7
use fstring to produce completion lines 2023-05-04 13:33:21 -07:00
062453af51
replace actionStr with action_name 2023-05-04 13:29:25 -07:00
b7fe2a5031
lowercase fish in docs 2023-05-04 13:27:57 -07:00
ca689505e5
add e2e fish test 2023-05-04 13:27:00 -07:00
9ff5ea5240
add a unit test, fix isort and black 2023-05-04 13:22:09 -07:00
359afe5318 Error if --list is used with --json for create action (#680). 2023-05-03 17:16:36 -07:00
0b397a5bf9 Fix borgmatic error when not finding the configuration schema for certain "pip install --editable" development installs (#687). 2023-04-30 16:24:10 -07:00
a60d7fd173 Run "borgmatic borg" action without capturing output so interactive prompts and flags like "--progress" still work. 2023-04-30 15:43:41 -07:00
f7e4024fca
add to readme 2023-04-28 14:02:06 -07:00
98e3a81fcf
allow file completions as applicable 2023-04-28 12:42:26 -07:00
9c77ebb016
continue deduping 2023-04-28 12:15:01 -07:00
23f478ce74
use less completion lines 2023-04-28 12:13:08 -07:00
d265b6ed6f
add comments in generated files 2023-04-28 11:57:16 -07:00
77c3161c77 Fix canonical home link in README. 2023-04-28 08:36:03 -07:00
2e658cfa56
only allow one parser 2023-04-27 21:57:50 -07:00
412d18f218
show sub options 2023-04-27 21:31:53 -07:00
8060586d8b
fix the script and drop unneeded options 2023-04-27 20:05:17 -07:00
25b3db72a0
make more precise, fix the version check fn 2023-04-27 19:58:22 -07:00
5678f3a96e
basic working version 2023-04-27 19:44:11 -07:00
28b152aedd
make upgrade message a template 2023-04-27 19:31:42 -07:00
0009471f67
start work on completion 2023-04-27 18:46:13 -07:00
a62ac42cca Merge branch 'main' into borg2-archive-flags 2023-04-27 16:57:29 +00:00
68ee9687f5 Added tests for all subcommands and used black formatter
Signed-off-by: Chirag Aggarwal <thechiragaggarwal@gmail.com>
2023-04-27 22:27:23 +05:30
32395e47f9 Added duplicate flags test for prune
Signed-off-by: Chirag Aggarwal <thechiragaggarwal@gmail.com>
2023-04-24 20:49:41 +05:30
8aaba9bb0a Added new flags to prune test for review
Signed-off-by: Chirag Aggarwal <thechiragaggarwal@gmail.com>
2023-04-24 20:43:34 +05:30
96aca4f446 Updated existing tests to use new parameters
Signed-off-by: Chirag Aggarwal <thechiragaggarwal@gmail.com>
2023-04-24 20:24:41 +05:30
22b84a2fea Switch to Docker Compose for dev-docs script, so podman-docker is no longer needed for Podman users. 2023-04-22 10:07:40 -07:00
5962fd473e Another try. Backing out psql error changes (#678). 2023-04-21 10:34:50 -07:00
7e64f415ba Attempt to fix failing end-to-end database test that only fails in CI. 2023-04-21 10:03:29 -07:00
ae12ccd8e6 And fixing again... 2023-04-21 09:31:37 -07:00
3cefeaa229 Fix end-to-end test command-line syntax. 2023-04-21 09:30:08 -07:00
71b75800cd Get more verbose in the end-to-end test restore. 2023-04-20 23:32:57 -07:00
9ca31530a0 Add missing test for check_all_source_directories_exist() raising. 2023-04-20 23:15:22 -07:00
b555fcb956 Add "source_directories_must_exist" expansion fix to NEWS (#682). 2023-04-20 23:08:21 -07:00
5829196b70 Expand source directories when checking for existence (#682).
Reviewed-on: borgmatic-collective/borgmatic#683
2023-04-21 06:05:59 +00:00
a14870ce48 Expand source directories when checking for existence (#682). 2023-04-21 05:52:04 +00:00
ee5c25f3bd Add additional tests for PostgreSQL hook fixes (#678). 2023-04-20 21:44:42 -07:00
da0f5a34f2 Fix multiple bugs in PostgreSQL hook (#678).
Reviewed-on: borgmatic-collective/borgmatic#677
2023-04-21 04:05:22 +00:00
065be1d9d4 More inclusive language. 2023-04-20 14:28:04 -07:00
f2f6fb537a !!! 2023-04-20 14:19:34 -07:00
7ff994a964 🤦 2023-04-20 13:56:12 -07:00
08edecacae WTF?! 2023-04-20 13:55:37 -07:00
1e03046d9a *Seriously?* 2023-04-20 13:50:26 -07:00
c9bf52ee45 Sigh again. 2023-04-20 13:46:49 -07:00
f947525fca ? 2023-04-20 13:45:26 -07:00
7f7b89d79c Trying a different approach: Ditching Podman-in-Podman. 2023-04-20 12:03:51 -07:00
499e42df35 😭 2023-04-20 11:58:06 -07:00
4302a07c9b WTF. 2023-04-20 11:53:52 -07:00
1721c05d2e Yet more. 2023-04-20 11:52:23 -07:00
8a31c27078 To see what sticks. 2023-04-20 11:50:25 -07:00
d6e1cef356 Throwing stuff at the wall. 2023-04-20 11:49:43 -07:00
f82bf619ff More. 2023-04-20 11:41:35 -07:00
02eeca1fc2 Hmm. 2023-04-20 11:36:30 -07:00
4e78cf1b95 ಠ_ಠ 2023-04-20 11:33:15 -07:00
9e9a7c50e5 😊🔫 2023-04-20 11:30:30 -07:00
51bc53e5ca Whee. 2023-04-20 11:24:59 -07:00
b85538c54c Double sigh. 2023-04-20 11:11:49 -07:00
bb5028e484 Sigh. 2023-04-20 11:11:08 -07:00
53ee0fcfad Another attempt at Podman-in-Podman incantations. 2023-04-20 11:06:15 -07:00
5f8c79dd16 Attempt to get Podman-in-Podman builds working. 2023-04-20 10:50:44 -07:00
0a6f5452f4 Fix broken Podman image name. 2023-04-19 23:16:15 -07:00
269fac074b Attempt to use Podman-in-Podman for building docs instead of Docker-in-Podman. 2023-04-19 23:14:51 -07:00
3b21ce4ce8 Rename "master" development branch to "main" to use more inclusive language (#684). 2023-04-19 21:43:08 -07:00
8bb7631f50 Fix missing mock in unit test. 2023-04-19 21:22:51 -07:00
9f5769f87b Make docs/schema a little more container agnostic / less Docker specific. 2023-04-16 15:41:17 -07:00
991e08f16d Add Unraid borgmatic installation link to docs. 2023-04-15 09:13:13 -07:00
1ee56805f1 Merge remote-tracking branch 'upstream/master' into borg2-archive-flags 2023-04-15 17:29:20 +05:30
25506b8d2c Backing out upgrade of end-to-end test packages, because apparently we can't have nice things. 2023-04-14 23:47:51 -07:00
28e62d824b Upgrade end-to-end test packages. 2023-04-14 23:28:07 -07:00
7ee37a890e Fix broken end-to-end tests by no longer using an editable package there, a work-around for https://github.com/pypa/packaging-problems/issues/609 2023-04-14 23:22:07 -07:00
8cb5a42a9e Drop deprecated pkg_resources in favor of importlib.metadata and packaging. 2023-04-14 21:21:25 -07:00
5dbb71709c Upgrade test requirements and code style requirements. Auto-reformat code accordingly. 2023-04-14 19:35:24 -07:00
1c67db5d62 Add documentation for "borgmatic restore --schema" (#375). 2023-04-14 16:40:58 -07:00
96d4a8ee45 Add "borgmatic restore --schema" flag to NEWS (#375). 2023-04-14 16:33:06 -07:00
81e167959b
feat: restore specific schemas (#375).
Merge pull request #67 from diivi/feat/restore-specific-schemas
2023-04-14 16:26:25 -07:00
f273e82d74 add tests 2023-04-15 02:57:51 +05:30
17f122bfe5 Use psql instead of pg_restore when format is "plain"
pg_restore: error: input file appears to be a text format dump. Please use psql.
2023-04-14 17:38:19 +02:00
f0f43174c6 Swap if-else in restore_database_dump in postgresql hook for cleanliness 2023-04-14 17:38:19 +02:00
dfccc1b94a Exit on error when restoring all PostgreSQL databases
"--set ON_ERROR_STOP=on" is equivalent to "--exit-on-error" in
pg_restore.
2023-04-14 17:38:18 +02:00
195024e505 Fix psql_command and pg_restore_command to accept command with arguments
These commands are executed without `shell=True`, so the subprocess
module treats e.g. "docker exec my_pg_container psql" as a single command
(resulting in Errno 2 "No such file or directory") instead of a command
with arguments.
2023-04-14 17:37:38 +02:00
19a00371f5 Run "psql" with "--no-psqlrc"
Some settings in user's .psqlrc, e.g. "linestyle unicode", may break the
CSV output. "--no-psqlrc" tells psql to not read startup file.

This is not necessary for the analyze_command and restore_command (with
all_databases), but it's generally recommended when running psql from a
script.
2023-04-14 17:37:37 +02:00
874fba7672 Fix PostgreSQL hook not using "psql_command" for list when dumping "all" 2023-04-14 15:13:49 +02:00
50b0a9ce38 Remove newline at end of file. 2023-04-13 19:13:50 -07:00
8802f6888e Fix "TypeError: 'module' object is not callable" in test_commands.py' (#676).
Reviewed-on: borgmatic-collective/borgmatic#676
2023-04-14 02:12:58 +00:00
ebe5c5e839 Fix "TypeError: 'module' object is not callable" in test_commands.py 2023-04-14 01:01:31 +00:00
613f6c602c Bump version for release. 2023-04-13 15:12:19 -07:00
4a94c2c9bf Selectively omit list values when including configuration files (#672). 2023-04-13 14:39:36 -07:00
08843d51d9 Replace "sequence" with "list" in docs for consistency. 2023-04-12 10:30:23 -07:00
ea9213cb03 Spelling. 2023-04-11 22:12:57 -07:00
1ea4433aa9 Selectively shallow merge certain mappings or sequences when including configuration files (#672). 2023-04-11 21:49:10 -07:00
2fea429d78 collection restore for mongodb 2023-04-12 09:34:19 +05:30
264cebd2b1 complete psql multi schema backup 2023-04-11 23:19:49 +05:30
4c0e2cab78 View the results of configuration file merging via "validate-borgmatic-config --show" flag (#673). 2023-04-11 10:49:09 -07:00
31a2ac914a Add optional support for running end-to-end tests and building documentation with rootless Podman instead of Docker. 2023-04-10 14:26:54 -07:00
d6ef0df50d Mention #670 being fixed in NEWS. 2023-04-09 10:01:08 -07:00
cc60a71210 Clarify "log_file" NEWS (#413). 2023-04-06 14:12:12 -07:00
4cd7556a34 Add "log_file" command hook context to NEWS and docs (#413). 2023-04-06 13:58:37 -07:00
b4b1fa939d
feat: add logfile name to hook context for interpolation
Merge pull request #68 from diivi/feat/add-log-filename-to-hook-context
2023-04-06 13:46:45 -07:00
16d7131fb7 refactor tests 2023-04-07 01:00:38 +05:30
091d60c226 refactor and improve tests 2023-04-06 12:36:10 +05:30
0fbdf8d860 feat: add logfile name to hook context for interpolation 2023-04-06 09:31:24 +05:30
192bfe46a9 Fix error when running the "prune" action with both "archive_name_format" and "prefix" options set (#668). 2023-04-05 14:58:05 -07:00
080c3afa0d Fix documentation referring to "archive_name_format" in wrong configuration section. 2023-04-05 14:00:21 -07:00
9bc2322f9a feat: restore specific schemas 2023-04-06 02:10:36 +05:30
a9a65ebe54 Fix integration tests to actually assert (#666). 2023-04-04 22:11:36 -07:00
616eb6b6da Fix error with "info --match-archives" and fix "--match-archives" overriding logic (#666). 2023-04-04 21:25:10 -07:00
00d1dea94e Bump version for release. 2023-04-03 16:11:25 -07:00
127ad1dd1f
Add favicon to documentation.
Merge pull request #66 from diivi/add-favicon
2023-04-03 10:22:12 -07:00
fc58ba5763 add favicon to documentation 2023-04-03 17:36:24 +05:30
7e6bee84b0 Add "--log-file-format" flag for customizing the log message format (#658). 2023-04-02 23:06:36 -07:00
01811e03ba Tagged the auto-matching archive behavior as breaking in NEWS. 2023-04-02 14:38:35 -07:00
9712d00680 Add "match_archives" option (#588). 2023-04-01 23:57:55 -07:00
275e99d0b9 Add codespell link to documentation. 2023-04-01 14:38:52 -07:00
b9328e6d42 Add spellchecking of source code to NEWS. 2023-04-01 14:09:48 -07:00
2934d0902c Code spell checking on every test run! 2023-04-01 11:03:59 -07:00
1ad43ad4b5
Fix: run typos to fix various typos in source code.
Merge pull request #65 from diivi/fix/run-typos
2023-04-01 10:44:11 -07:00
32ab17fa46 merge 2023-04-01 22:12:41 +05:30
6054ced931 fix: run typos 2023-04-01 22:10:32 +05:30
1412038ed3
Fix randomly failing test: test_log_outputs_kills_other_processes_when_one_errors (#635).
Merge pull request #64 from kxxt/master
2023-03-31 23:19:57 -07:00
kxxt
fa8bc285c8 Fix randomly failing test. 2023-04-01 14:02:30 +08:00
f256908b27 Document wording tweaks (#479). 2023-03-31 15:36:59 -07:00
3f78ac4085 Automatically use the "archive_name_format" option to filter which archives get used for borgmatic actions that operate on multiple archives (#479). 2023-03-31 15:21:08 -07:00
5f595f7ac3 Fix regression in which the "transfer" action produced a traceback (#663). 2023-03-30 23:21:20 -07:00
b27e625a77 Update schema comment for check_repositories to mention labels (#635). 2023-03-28 15:44:38 -07:00
fc2c181b74 Add missing Docker Compose depends. 2023-03-28 15:31:37 -07:00
010b82d6d8 Remove unnecessary cd in dev documentation. 2023-03-28 12:45:39 -07:00
aaf3462d17 Fix Drone intentation. 2023-03-28 12:03:12 -07:00
f709125110 Error out if run-full-tests is run not inside a test container. 2023-03-28 12:02:07 -07:00
3512191f3e Add check_repositories regression fix to NEWS (#662). 2023-03-28 11:45:55 -07:00
06b5d81baa Merge branch 'master' of github.com:borgmatic-collective/borgmatic 2023-03-28 11:15:31 -07:00
9d71bf916e
fix: make check repositories work with dict and str repositories (#662).
Merge pull request #63 from diivi/fix/check-repositories-by-label
2023-03-28 11:15:01 -07:00
59fe01b56d Update script comment. 2023-03-28 11:09:25 -07:00
08e358e27f add and update tests 2023-03-28 22:51:35 +05:30
ce22d2d302 reformat 2023-03-28 22:29:21 +05:30
2d08a63e60 fix: make check repositories work with dict and str repositories 2023-03-28 22:14:50 +05:30
98c6aa6443 Use Square brackets to denote version specific flag
Signed-off-by: Chirag Aggarwal <thechiragaggarwal@gmail.com>
2023-03-28 18:15:49 +05:30
edd79ed86c removed individual action parameters, and used make_flags_from_arguments
Signed-off-by: Chirag Aggarwal <thechiragaggarwal@gmail.com>
2023-03-28 18:10:42 +05:30
d96f2239c1 Update OpenBSD borgmatic link. 2023-03-27 23:43:39 -07:00
67a349ae44 I had one job... (#461). 2023-03-27 23:28:36 -07:00
dcefded0fa Document that most command-line flags are not config-file-able (#461). 2023-03-27 23:21:14 -07:00
1bcdebd1cc Fix multiple repositories example. 2023-03-27 23:16:44 -07:00
7a8e0e89dd Mention prior versions of borgmatic in repositories schema. 2023-03-27 21:54:01 -07:00
489ae080e5 Update docs with a few more "path:" repositories references (#635). 2023-03-27 21:49:31 -07:00
0e3da7be63 Fix repository schema description. 2023-03-27 16:15:24 -07:00
c5ffb76dfa Bump version for release. 2023-03-27 15:56:49 -07:00
61c7b8f13c Add optional repository labels so you can select a repository via "--repository yourlabel" at the command-line (#635). 2023-03-27 15:54:55 -07:00
3e8e38011b
Labels for repositories (#635).
Merge pull request #57 from diivi/feat/tag-repos
2023-03-27 15:46:22 -07:00
4fa4fccab7 Use make_flags_from_arguments on mount; Pending test fixes
Signed-off-by: Chirag Aggarwal <thechiragaggarwal@gmail.com>
2023-03-27 23:24:17 +05:30
d0d3a39833 When a database command errors, display and log the error message instead of swallowing it (#396). 2023-03-27 10:36:39 -07:00
8bef1c698b add feature to docs 2023-03-27 22:16:39 +05:30
acbbd6670a Removing debugging command output. 2023-03-26 21:26:35 -07:00
b336b9bedf add tests for repo labels 2023-03-27 00:19:23 +05:30
ec9def4e71 rename repository arg to repository_path in all borg actions 2023-03-26 23:52:25 +05:30
a136fda92d check all tests 2023-03-26 23:35:47 +05:30
b511e679ae remove optional label for repos from tests 2023-03-26 16:59:29 +05:30
f56fdab7a9 Add troubleshooting documentation on PostgreSQL/MySQL authentication errors. 2023-03-25 17:08:17 -07:00
ff1f4dc09c minor fixes to prune argument help text 2023-03-26 02:06:46 +05:30
141474ff07 Added TIMESPAN flags to match archive in various commands (Borg2 feature)
Signed-off-by: jetchirag <thechiragaggarwal@gmail.com>
2023-03-26 01:58:03 +05:30
8c0eea7229 Add additional documentation link to environment variable feature. Rename constants section. 2023-03-25 08:56:25 -07:00
19e95628c3 Add documentation and NEWS for custom constants feature (#612). 2023-03-24 23:47:05 -07:00
4d01e53414
Fix: replace primitive values in config without quotes (#612).
Merge pull request #62 from diivi/fix/config-json-replacement
2023-03-24 23:45:36 -07:00
a082cb87cb fix: replace primitive values in config without quotes 2023-03-25 12:12:56 +05:30
1c51a8e229
Allow defining custom variables in config file (#612).
Merge pull request #60 from diivi/feat/constants-support
2023-03-24 22:50:57 -07:00
d14a8df71a Hide obnoxious ruamel.yaml warnings during test runs. 2023-03-24 22:43:10 -07:00
739a58fe47 Rename scripts/run-full-dev-tests to scripts/run-end-to-end-dev-tests and make it run end-to-end tests only. 2023-03-24 16:24:00 -07:00
af3431d6ae
fix: docs cli reference create spelling
Merge pull request #61 from diivi/docs/cli-reference
2023-03-24 16:09:50 -07:00
9851abc2e1 Add documentation on backing up a database running in a container (#649). 2023-03-24 15:18:49 -07:00
61ce6f0473 fix: docs cli reference create spelling 2023-03-25 02:44:56 +05:30
78e8bb6c8c reformat 2023-03-25 02:08:52 +05:30
af95134cd2 add test for complex constant 2023-03-25 02:03:36 +05:30
d6dfb8753a reformat 2023-03-25 01:50:47 +05:30
1bc003560a Merge branch 'master' of https://github.com/diivi/borgmatic into feat/tag-repos 2023-03-25 01:39:26 +05:30
aeaf69f49e pass all tests 2023-03-25 01:34:03 +05:30
e83ad9e1e4 use repository["path"] instead of repository 2023-03-25 01:04:57 +05:30
f42890430c Add code style plugins to enforce use of Python f-strings and prevent single-letter variables. 2023-03-23 23:11:14 -07:00
6f300b0079 feat: constants support 2023-03-24 02:39:37 +05:30
9bec029b4f
Fix: remove extra links from docs css.
Merge pull request #59 from diivi/fix/remove-extra-links-from-css
2023-03-23 12:57:55 -07:00
08afad5d81 end with newline 2023-03-24 01:25:15 +05:30
a01dc62468 fix: remove extra links from docs css 2023-03-24 01:23:40 +05:30
8b61225b13
Copy to clipboard support in documentation.
Merge pull request #58 from diivi/docs/copy-to-clipboard-support
2023-03-23 12:39:41 -07:00
66d2f49f18 docs: copy to clipboard support 2023-03-23 14:45:23 +05:30
0a72c67c6c Add missing source directory error fix to NEWS (#655). 2023-03-22 13:02:22 -07:00
ab64b7ef67
Fix error when a source directory doesn't exist and databases are configured (#655).
Merge pull request #56 from diivi/fix/no-error-on-database-backup-without-source-dirs
2023-03-22 12:59:01 -07:00
1e3a3bf1e7 review 2023-03-23 01:18:06 +05:30
7a2f287918 reformat base 2023-03-23 01:08:30 +05:30
8a63c49498 feat: tag repos 2023-03-23 01:01:26 +05:30
3b5ede8044 remove extra parameter from function call 2023-03-22 23:11:44 +05:30
bd235f0426 use exit_code_indicates_error and modify it to accept a command 2023-03-22 16:23:53 +05:30
09183464cd fix: no error on database backups without source dirs 2023-03-22 09:41:39 +05:30
ca6fd6b061 Add confusing error message fix to NEWS (#623). 2023-03-21 14:25:20 -07:00
dd9a64f4b6
Fix confusing message when an error occurs running actions for a configuration file (#623).
Merge pull request #55 from diivi/fix/rephrase-error-message
2023-03-21 14:23:09 -07:00
23e7f27ee4 fix: rephrase error when running from config
to avoid confusion, as the user might think the problem is with their config file
2023-03-22 02:22:43 +05:30
f9ef52f9a5 Remove unused module and outdated test expectations (#576). 2023-03-21 10:29:17 -07:00
3f17c355ca Add "file://" paths to NEWS (#576). 2023-03-21 10:24:51 -07:00
c83fae5e5b
Support file:// paths for repositories (#576).
Merge pull request #54 from diivi/feat/file-urls-support
2023-03-21 10:22:39 -07:00
39ad8f64c4 add tests and remove magic number 2023-03-21 17:06:03 +05:30
e86d223bbf Merge branch 'master' of https://github.com/diivi/borgmatic into feat/file-urls-support 2023-03-21 16:55:05 +05:30
86587ab2dc send repo directly to extract and export_tar 2023-03-20 21:51:45 +05:30
58c95d8015 feat: file:// URLs support 2023-03-20 02:43:23 +05:30
6351747da5 Add NixOS package link to installation docs. 2023-03-19 09:02:47 -07:00
55c153409e Add "source_directories_must_exist" option to NEWS (#501). 2023-03-18 14:07:38 -07:00
b115fb2fbe Merge branch 'master' of github.com:borgmatic-collective/borgmatic 2023-03-18 14:01:52 -07:00
31d04d9ee3
Optionally error if a source directory does not exist.
feat: add optional check for existence of source directories
2023-03-18 13:59:20 -07:00
f803836416 reformat 2023-03-18 17:27:33 +05:30
997f60b3e6 add tests 2023-03-18 17:24:21 +05:30
c84b26499b Add "borg_files_cache_ttl" option to NEWS. 2023-03-17 19:29:10 -07:00
214ae81cbb Add option to set borg_files_cache_ttl in config (#618).
Reviewed-on: borgmatic-collective/borgmatic#654
2023-03-18 02:24:41 +00:00
d17b2c74db feat: add optional check for existence of source directories 2023-03-18 04:35:55 +05:30
fb9677230b add test to ensure integers are converted to string
before setting them up to be environment variable values

Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-03-18 02:57:56 +05:30
0db137efdf add option to set borg_files_cache_ttl in config
Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-03-18 01:48:24 +05:30
e6605c868d Clarify check frequency default behavior (#653). 2023-03-17 10:09:36 -07:00
bdfe4b61eb Bump version for release. 2023-03-16 13:42:15 -07:00
ca4461820d Add support for Python 3.11. 2023-03-16 13:29:37 -07:00
7605838bfe Add "--repository" flag to all actions where it makes sense (#564). 2023-03-16 13:27:08 -07:00
7a784b8eba Add "--repository" flag to common actions (where it makes sense) (#652).
Reviewed-on: borgmatic-collective/borgmatic#652
2023-03-16 20:21:40 +00:00
Nain
3e22414613 Update tests
Make them more explicit. Also formatting.
2023-03-16 14:01:29 -04:00
Nain
5f87ea3ec5 Add "--repository" flag to the "create" action 2023-03-16 13:15:49 -04:00
Nain
a8aeace5b5 Add "--repository" flag to the "compact" action 2023-03-16 11:13:45 -04:00
Nain
480addd7ce Add "--repository" flag to the "check" action 2023-03-16 10:41:13 -04:00
Nain
ce0ce4cd1c Merge mostly repetetive tests 2023-03-16 08:23:21 -04:00
Nain
7de9260b0d Remove test now that --repository isn't expected to error
As discussed #652#issuecomment-5579
2023-03-15 14:59:12 -04:00
Nain
cdbe6cdf3a Add "--repository" flag to the "prune" action
part of ticket #564
2023-03-15 14:43:17 -04:00
95dcc20d5f Better indicate position of additional docs on page (#651).
Reviewed-on: borgmatic-collective/borgmatic#651
2023-03-15 18:13:27 +00:00
49e0494924 Fix --editable (mode) option given --user as arg (#648).
Reviewed-on: borgmatic-collective/borgmatic#650
2023-03-15 18:06:46 +00:00
Nain
5fad2bd408 Better indicate position of additional docs on page
On wide screens, the position of the documentation (how-to and reference guide)
is at same level as #it's-your-data.-keep-it-that-way.

So the jump due to anchor link makes it seem like we're taken to top aka
main content. Indicate that links are to the left so reader doesn't recurse.
2023-03-15 07:54:49 -04:00
c6829782a3 Fix --editable (mode) option given --user as arg
--user option should be before, or after `--editable .` not in between.
Before seems better.
2023-03-15 06:50:47 -04:00
8cec7c74d8 Add "--strip-components all" on the "extract" action to remove leading path components (#647). 2023-03-09 10:09:16 -08:00
d3086788eb Document how to list database dumps in an archive. 2023-03-08 16:09:41 -08:00
8d860ea02c
Enhanced docs with info on fetching mysql database size
Merge pull request #46 from Jelle-SamsonIT/patch-3
2023-03-08 15:52:28 -08:00
b343363bb8 Change the default action order to: "create", "prune", "compact", "check" (#304). 2023-03-08 14:05:06 -08:00
9db31bd1e9 Run any command-line actions in the order specified instead of using a fixed ordering (#304). 2023-03-08 13:19:41 -08:00
d88bcc8be9 Add Healthchecks "log" state feature to NEWS. 2023-03-07 15:45:23 -08:00
332f7c4bb6 Add support for healthchecks "log" feature (#628).
Reviewed-on: borgmatic-collective/borgmatic#645
2023-03-07 22:21:30 +00:00
5d19d86e4a Add flake8-quotes to complain about incorrect quoting so I don't have to! 2023-03-07 14:08:35 -08:00
044ae7869a fix tests
Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-03-08 03:30:12 +05:30
62ae82f2c0 Mention searching for files in the extract a backup guide. 2023-03-06 22:59:34 -08:00
66194b7304 Update dates in documentation examples. 2023-03-06 22:41:43 -08:00
98e429594e added tests to make sure unsupported log states are detected
Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-03-06 20:31:00 +05:30
4fcfddbe08 return early if unsupported state is passed
Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-03-06 19:58:57 +05:30
f442aeae9c fix logs_monitor_start_error()
Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-03-06 05:21:56 +05:30
e211863cba update test_borgmatic.py
Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-03-06 05:12:24 +05:30
45256ae33f add test for healthchecks
Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-03-06 03:38:08 +05:30
1573d68fe2 update schema.yaml description
also add monitor.State.LOG to cronitor.

Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-03-05 21:57:13 +05:30
69f6695253 Add support for healthchecks "log" feature #628
Signed-off-by: Soumik Dutta <shalearkane@gmail.com>
2023-03-05 19:27:32 +05:30
a7c055264d
Fix incorrect documentation TOC background by removing extra dark mode styles.
Merge pull request #52 from diivi/fix/remove-special-dark-mode-attributes
2023-03-04 16:18:04 -08:00
db18364a73 fix: remove extra dark mode styles 2023-03-05 03:16:46 +05:30
22498ebd4c In the documentation, mention what version of borgmatic introduced SQLite support. 2023-03-04 10:50:28 -08:00
e1f02d9fa5 Add SQLite feature to NEWS and also integrations. 2023-03-04 09:59:16 -08:00
9ec220c600
Add SQLite database dump/restore hook (#295).
feat: add dump-restore support for sqlite databases
2023-03-04 09:47:21 -08:00
cf0275a3ed remove test path 2023-03-04 23:00:57 +05:30
c71eb60cd2 mock os.remove instead of actually removing a file 2023-03-04 13:08:30 +05:30
675e54ba9f use os.remove and improve tests 2023-03-04 12:43:07 +05:30
1793ad74bd add sqlite for e2e tests 2023-03-04 02:41:14 +05:30
767a7d900b e2e tests schema update 2023-03-04 01:29:01 +05:30
903507bd03 code review 2023-03-04 01:27:07 +05:30
b6cf7d2adc Bump version for release. 2023-03-02 15:34:22 -08:00
a071e02d20 With the "create" action and the "--list" ("--files") flag, only show excluded files at verbosity 2 (#620). 2023-03-02 15:33:42 -08:00
3aa88085ed formatting fix 2023-03-03 00:01:52 +05:30
af1cc27988 feat: add dump-restore support for sqlite databases 2023-03-02 23:55:16 +05:30
dbf8301c19 Add "checkpoint_volume" configuration option to creates checkpoints every specified number of bytes. 2023-02-27 10:47:17 -08:00
2a306bef12 Fix tests. 2023-02-26 23:34:17 -08:00
2a36a2a312 Add "--repository" flag to the "rcreate" action. Add "--progress" flag to the "transfer" action. 2023-02-26 23:22:23 -08:00
d7a07f0428 Support status character changes in Borg 2.0.0b5 when filtering out special files that cause Borg to hang. 2023-02-26 22:36:13 -08:00
da321e180d Fix the "create" action with the "--dry-run" flag querying for databases when a PostgreSQL/MySQL "all" database is configured. 2023-02-26 22:15:12 -08:00
c6582e1171 Internally support new Borg 2.0.0b5 "--filter" status characters / item flags for the "create" action. 2023-02-26 17:17:25 -08:00
9b83afe491 With the "create" action, only one of "--list" ("--files") and "--progress" flags can be used. 2023-02-26 17:05:56 -08:00
2814ac3642 Update Borg 2.0 documentation links. 2023-02-26 16:44:43 -08:00
8a9d5d93f5 Add ntfy authentication to NEWS. 2023-02-25 14:23:42 -08:00
783a6d3b45 Add authentication to the ntfy hook (#621).
Reviewed-on: borgmatic-collective/borgmatic#644
2023-02-25 22:04:37 +00:00
95575c3450 Add auth test for the ntfy hook 2023-02-25 20:04:39 +01:00
9b071ff92f Make the auth logic more explicit and warnings if necessary 2023-02-25 20:04:39 +01:00
d80e716822 Add authentication to the ntfy hook 2023-02-24 17:35:53 +01:00
418ebc8843 Add MySQL database hook "add_drop_database" configuration option to control whether dumped MySQL databases get dropped right before restore (#642). 2023-02-20 15:32:47 -08:00
f5a448c7c2 Fix for potential data loss (data not getting backed up) when dumping large "directory" format PostgreSQL/MongoDB databases (#643). 2023-02-20 15:18:51 -08:00
37ac542b31 Merge pull request 'setup: Add link to MacPorts package' (#641) from neverpanic/borgmatic:cal-docs-macports-port into master
Reviewed-on: borgmatic-collective/borgmatic#641
2023-02-15 17:31:03 +00:00
Clemens Lang
8c7d7e3e41 setup: Add link to MacPorts package 2023-02-15 10:47:59 +01:00
b811f125b2 Clarify "checks" configuration documentation for older versions of borgmatic (#639). 2023-02-12 21:42:43 -08:00
061f3e7917 Remove related documentation links. 2023-01-26 16:12:01 -08:00
6055918907 Upgrade documentation image dependencies. 2023-01-26 16:11:41 -08:00
4a90e090ad Clarify NEWS on database "all" dump feature applying to MySQL as well. 2023-01-26 15:28:17 -08:00
301b29ee11 Bump version for release. 2023-01-26 15:17:19 -08:00
c1eb210253 Fix code style flake issue. 2023-01-26 15:09:35 -08:00
30cca62d09 Add configuration options for database command customization (#630). 2023-01-26 14:59:17 -08:00
113c0e7616 Update documentation about changes to "all" database restores (#438, #560). 2023-01-26 10:53:58 -08:00
0e6b2c6773 Optionally dump "all" PostgreSQL databases to separate files instead of one combined dump file (#438, #560). 2023-01-25 23:31:07 -08:00
22c750b949 Mention "before_actions" command hook in soft failure documentation (#631). 2023-01-25 13:01:52 -08:00
504cce39a1 Add NEWS entry for #629. 2023-01-14 09:17:27 -08:00
6c4abb6803 Merge pull request 'Log warning for excluding special files only if list is not empty' (#629) from palto42/borgmatic:special_files_warn into master
Reviewed-on: borgmatic-collective/borgmatic#629
2023-01-14 17:15:01 +00:00
palto42
fd7ad86daa
conditional warning for excluding special files 2023-01-03 21:53:51 +01:00
6f3b23c79d Lowercase borgmatic in documentation. 2022-12-23 14:12:48 -08:00
4838f5e810 Add borgmatic minimum version to compact docs (#624).
Reviewed-on: borgmatic-collective/borgmatic#625
2022-12-23 22:11:45 +00:00
116f1ab989 add borgmatic minimum version to compact docs 2022-12-23 13:32:01 -08:00
5e15c9f2bc Fix traceback when include merging on ARM64 (#622). 2022-12-23 10:07:53 -08:00
442641f9f6 Update borgmatic social links. 2022-12-16 11:39:05 -08:00
f67c544be6 Optionally dump "all" PostgreSQL databases to separate files instead of one combined dump file (#438, #560). 2022-12-15 22:59:42 -08:00
437fd4dbae Update developer constributing instructions as well. 2022-12-13 23:56:32 -08:00
36873252d6 Update developer instructions. 2022-12-13 23:44:27 -08:00
1ef82a27fa Clarify data/archives check implicit enabling. 2022-12-12 16:03:05 -08:00
6837dcbf42 Clarify documentation about transferring archives between related repositories. 2022-12-10 12:59:44 -08:00
c657764367 Fix logs that interfere with JSON output by making warnings go to stderr instead of stdout (#602). 2022-12-02 12:12:10 -08:00
f79286fc91 Bump version for release. 2022-11-27 09:00:40 -08:00
694d376d15 Clarify documentation about multiple repositories and separate configuration files (#613). 2022-11-21 13:33:01 -08:00
ab4c08019c Upgrade pytest test dependency (security). 2022-11-18 11:13:51 -08:00
fd39f54df7 Code formatting. 2022-11-18 08:35:01 -08:00
ca7e18bb29
Override PostgreSQL dump/restore commands via configuration options (#311).
Merge pull request #49 from jpaniagualaconich/specify-pg-dump-restore-commands
2022-11-18 08:33:14 -08:00
6975a5b155 Fix "data" consistency check to support "check_last" and consistency "prefix" options (#611). 2022-11-17 10:19:48 -08:00
b627d00595 More consistency checks documentation edits. 2022-11-14 15:13:47 -08:00
9bd8f1a6df Clarify consistency check configuration. 2022-11-14 14:58:42 -08:00
Javier Paniagua
faf682ca35 specify pg dump/restore commands (#311) 2022-11-06 11:12:53 +01:00
6aeb74550d Clarify examples in include merging and deep merging documentation (#607). 2022-10-28 19:33:19 -07:00
89500df429 Fix traceback when a configuration section is present but lacking any options (#604). 2022-10-23 13:56:03 -07:00
82b072d0b7 Update documentation to mention using blake2 with "transfer" action. 2022-10-17 15:04:30 -07:00
018c0296fd Document that special file exclusion also excludes symlinks to special files (#596). 2022-10-15 10:14:46 -07:00
9c42e7e817 Fix regression in which "check" action errored on certain systems (#597, #598). 2022-10-14 16:19:26 -07:00
953277a066 Fix special file detection when broken symlinks are encountered (#596). 2022-10-14 09:41:08 -07:00
e2002b5488 Bump version for release. 2022-10-12 10:59:54 -07:00
c9742e1d04 Code formatting. 2022-10-12 10:52:32 -07:00
906da838ef Add missing break-lock action command-line help (#357). 2022-10-12 10:48:10 -07:00
d7f1c10c8c To prevent Borg hangs, unconditionally delete stale named pipes before dumping databases (#360). 2022-10-12 10:26:09 -07:00
e8e4d17168 Clean up changelog for the current dev release. 2022-10-06 22:06:03 -07:00
a31ce337e9 Skip auto-exclusion of special files when user explicitly sets read_special to true (#587). 2022-10-06 11:07:43 -07:00
902730df46 Update sample systemd file to allow system idle (#589). 2022-10-05 10:20:25 -07:00
c969c822ee Do not inhibit idle in borgmatic.service (#589).
Reviewed-on: borgmatic-collective/borgmatic#589
2022-10-05 17:14:19 +00:00
c31702d092 Fix for potential data loss with "patterns_from". Also, display excluded files (#590). 2022-10-04 22:57:18 -07:00
ba8fbe7a44 Add "break-lock" action for removing any repository and cache locks leftover from Borg aborting (#357). 2022-10-04 13:42:18 -07:00
2774c2e4c0 Add support for Borg 2's "--match-archives" flag (replaces "--glob-archives") (#591). 2022-10-03 22:50:37 -07:00
ae036aebd7 When the "read_special" option is true or database hooks are enabled, auto-exclude special files for a "create" action to prevent Borg from hanging (#587). 2022-10-03 12:58:13 -07:00
LaserEyess
2e9f70d496 Do not inhibit idle in borgmatic.service
When backing up a machine with a monitor using logind to control idle
timeout and things like DPMS, borgmatic can block the screen from
turning on/off with systemd-inhibit. This is because by default
systemd-inhibit will block "idle:sleep:shutdown". Borgmatic does not
need to care about idle, only about suspend and shutdown. So, add an
explicit `--what` flag for what borgmatic should inhibit.

For more information see systemd-inhibit(1).
2022-10-01 09:33:38 -04:00
90be5b84b1 Fix changelog development version. 2022-09-20 14:02:48 -07:00
80e95f20a3 Add "borgmatic borg" documentation note about interactive prompts. 2022-09-20 14:01:47 -07:00
ac7c7d4036 Warn when ignoring a configured "read_special" value of false, as true is needed when database hooks are enabled (#587). 2022-09-20 13:52:13 -07:00
858b0b9fbe Note version of borgmatic needed for "borgmatic borg" action (#586). 2022-09-13 09:05:18 -07:00
9cc043f60e Update "find" command in documentation to work on BSDs and not just Linux (#583). 2022-09-11 20:02:30 -07:00
276a27d485 Bump version for release. 2022-09-08 10:29:44 -07:00
679bb839d7 Fix hang when database hooks are enabled and "patterns" contains a parent directory of "~/.borgmatic" (#582). 2022-09-08 10:16:42 -07:00
9e64d847ef Fix regression in which "borgmatic info --archive ..." showed repository info instead of archive info with Borg 1 (#577). 2022-08-30 20:42:42 -07:00
61fb275896 Fix duplicate-appearing log entries for "list" action. 2022-08-30 20:29:26 -07:00
ca0c79c93c Fix duplicate bind path in sample systemd service. 2022-08-28 14:49:23 -07:00
87c97b7568 Fixed spurious, intermittent test failures related to command execution and logging. 2022-08-28 09:06:06 -07:00
80b8c25bba Update docs about "source_directories" being optional. 2022-08-25 13:24:26 -07:00
d1837cd1d3 Bump version for release. 2022-08-25 11:58:06 -07:00
c46f2b8508 Fix conflict between "patterns" and "source_directories" (#574), make "source_directories" optional (#542). 2022-08-25 11:55:34 -07:00
a274c0dbf7 In generate-borgmatic-config, indicate that the example options are exhaustive. 2022-08-24 09:53:54 -07:00
ef7e95e22a Fix end-to-end tests. 2022-08-21 23:29:13 -07:00
3be99de5b1 Update "repositories" examples in configuration to use ssh:// style syntax. 2022-08-21 22:40:31 -07:00
e7b7560477 Bump version for release. 2022-08-21 21:54:13 -07:00
317dc7fbce Add "before_actions" and "after_actions" command hooks that run before/after all the actions for each repository, update docs to cover per-repository configurations (#463). 2022-08-21 21:48:37 -07:00
97fad15009 Switch to more accessible header permalink anchors in documentation. 2022-08-21 21:48:07 -07:00
462326406e Drop only-style actions like "--create", rename "prune --files" to "prune --list", and add "--list" alias to "create" and "export-tar" (#571). 2022-08-21 14:25:16 -07:00
bbdf4893d1 Clarify --format flag in documentation. 2022-08-19 15:27:03 -07:00
ef6617cfe6
Add link to Borg list --format documentation. 2022-08-19 15:16:56 -07:00
dbef0a440f
Merge branch 'master' into patch-2 2022-08-19 15:16:17 -07:00
22628ba5d4 Update ssh:// examples in documentation to use relative paths on the remote machine (#557). 2022-08-19 12:00:40 -07:00
8576ac86b9 Fix incorrect version in documentation (#557). 2022-08-19 09:44:31 -07:00
540f9f6b72 Add missing test for "transfer" action (#557). 2022-08-19 09:40:29 -07:00
f9d7faf884 Fix mount action to work without archive again (#557). 2022-08-18 23:33:05 -07:00
7dee6194a2 Add new "transfer" action for Borg 2 (#557). 2022-08-18 23:06:51 -07:00
68f9c1b950 Add generate-borgmatic-config end-to-end test. 2022-08-18 14:28:46 -07:00
43d711463c Add additional command-line flags to rcreate action (#557). 2022-08-18 14:28:12 -07:00
00255a2437 Various documentation edits for Borg 2 (#557). 2022-08-18 10:19:11 -07:00
b40e9b7da2 Ignore archive filter parameters passed to list action when --archive is given (#557). 2022-08-18 09:59:48 -07:00
89d201c8ff Fleshing out NEWS for the Borg 2 changes. 2022-08-17 21:54:00 -07:00
f47c98c4a5 Rename several configuration options to match Borg 2 (#557). 2022-08-17 21:14:58 -07:00
3b6ed06686 Add --other-repo flag to rcreate action (#557). 2022-08-17 17:33:09 -07:00
57009e22b5 Use flag-related utility functions in info action (#557). 2022-08-17 17:11:02 -07:00
3ab7a3b64a Replace use of --prefix with --glob-archives in info action (#557). 2022-08-17 15:36:19 -07:00
596dd49cf5 Use --glob-archives instead of --prefix on rlist command (#557). 2022-08-17 14:26:35 -07:00
28d847b8b1 Warn and tranform on non-ssh://-style repositories (#557). 2022-08-17 10:13:11 -07:00
2a1c6b1477 Update documentation with newly required ssh:// repository syntax for Borg 2 (#557). 2022-08-16 11:41:35 -07:00
30abd0e3de Update borg action for Borg 2 support (#557). 2022-08-16 09:30:00 -07:00
f36e38ec20 Update mount action for Borg 2 support (#557). 2022-08-15 19:32:37 -07:00
d807ce095e Update export-tar action for Borg 2 support (#557). 2022-08-15 17:34:12 -07:00
7626fe1189 Disallow borg list --json with --archive or --find (#557). 2022-08-15 15:40:28 -07:00
cc04bf57df Update list action for Borg 2 support, add rinfo action, and update extract consistency check for Borg 2. 2022-08-15 15:04:40 -07:00
cce6d56661 Update extract action for Borg 2 support (#557). 2022-08-13 23:07:29 -07:00
a05d0f378e Factor out repository/archive flags formatting code from create action (#557). 2022-08-13 22:50:14 -07:00
94321aec7a Update compact action for Borg 2 support (#557). 2022-08-13 22:07:15 -07:00
4a55749bd2 Update prune action for Borg 2 support (#557). 2022-08-13 17:26:51 -07:00
2898e63166 Update create action for Borg 2 support (#557). 2022-08-12 23:54:13 -07:00
c7176bd00a Add rinfo action for Borg 2 support (#557). 2022-08-12 23:06:56 -07:00
647ecdac29 Borg 2 support in borgmatic check action (#557). 2022-08-12 15:46:33 -07:00
e7a8acfb96 Add missing rinfo action source files (#557). 2022-08-12 14:59:03 -07:00
622caa0c21 Support for Borg 2's rcreate and rinfo sub-commands (#557). 2022-08-12 14:53:20 -07:00
22149c6401 Switch to self-hosted container registry for borgmatic documentation image. 2022-08-01 21:17:59 -07:00
9aece3936a Modify "mount" and "extract" actions to require the "--repository" flag when multiple repositories are configured (#566). 2022-07-25 11:30:02 -07:00
c7e4e6f6c9 Add Healthchecks "verify_tls" option to NEWS. 2022-07-23 23:16:06 -07:00
bcad0de1a4
Add verify_tls option for Healthchecks to optionally disable TLS verification. 2022-07-23 23:11:41 -07:00
Uli
5c6407047f feat: add verify_tls flag for Healthchecks 2022-07-24 07:37:00 +02:00
6ddae20fa1 Fix handling of "repository" and "data" consistency checks to prevent invalid Borg flags (#565). 2022-07-23 21:02:21 -07:00
23feac2f4c Bump version for release. 2022-07-19 20:32:41 -07:00
16066942e3 Fix traceback with "create" action and "--json" flag when a database hook is configured (#563). 2022-07-19 10:25:10 -07:00
Jelle @ Samson-IT
3720f22234
reworded and added 'all' caveat 2022-07-13 22:03:51 +02:00
Jelle @ Samson-IT
f7c8e89a9f
update format specifier syntax link to use anchor 2022-07-13 21:52:21 +02:00
Jelle @ Samson-IT
ba377952fd
Added link to borgbackup list --format docs
I kept searching for this link, so it's time to add it to official docs.
2022-07-13 13:52:48 +02:00
Jelle @ Samson-IT
1fdec480d6
Added some info about fetching mysql database size 2022-07-13 13:29:45 +02:00
e85d551eac Fix all database hooks to error when the requested database to restore isn't present in the Borg archive (#560). 2022-07-06 23:21:24 -07:00
2b23a63a08 Add end-to-end test for overrides. 2022-07-06 18:20:51 -07:00
c0f48e1071 Fix command-line "--override" flag to continue supporting old configuration file formats (#561). 2022-07-06 18:14:44 -07:00
6005426684 Update documentation about configuring multiple consistency checks or multiple databases (#559). 2022-07-03 22:24:25 -07:00
673ed1a2d3 Clarify check frequency documentation in regards to multiple configuration files. 2022-07-02 09:40:49 -07:00
992f62edd2 Bump version for release. 2022-06-30 22:14:41 -07:00
f1ffa1da1d Add another recommended flag to the backup documentation (#554). 2022-06-30 16:54:22 -07:00
457ed80744 Fix environment variable plumbing so options in one configuration file aren't used for others (#555). 2022-06-30 13:42:17 -07:00
1fc028ffae In documentation, be more explicit about default actions (#554). 2022-06-29 21:32:00 -07:00
10723efc68 Fix all monitoring hooks to warn if the server returns an HTTP 4xx error (#554). 2022-06-29 21:19:40 -07:00
2e0b2a308f Clarify --files flag action in documentation (#554). 2022-06-29 09:20:13 -07:00
bd4d109009 Fix logging to include the full traceback when Borg experiences an internal error (#553). 2022-06-28 13:38:24 -07:00
ae25386336 Update release script to abort if there are local changes. Prevents accidentally tagging a .dev0 changeset for release. 2022-06-25 09:42:05 -07:00
d929313d45 Bump version. 2022-06-24 10:18:01 -07:00
d372a86fe6 Code formatting. 2022-06-23 10:41:04 -07:00
e306f03e1d Merge branch 'master' of ssh://projects.torsion.org:3022/borgmatic-collective/borgmatic 2022-06-23 10:28:09 -07:00
8336165f23 Update documentation with environment variable escaping (#546). 2022-06-23 10:25:46 -07:00
c664c6b17b Fix escaped environment variable in configuration (#546).
Reviewed-on: borgmatic-collective/borgmatic#549
2022-06-23 17:16:09 +00:00
b63c854509 Fix escaped environment variable in configuration
- when an env variable is escaped in the configuration file, we expect
  not to resolve it and remove the escape char `\`
2022-06-17 09:50:56 +02:00
aa013af25e Remove some whitespace around "New in version ..." documentation labels. 2022-06-16 20:49:15 -07:00
cc32f0018b Start formalizing how new features are flagged by version in documentation. 2022-06-16 20:23:16 -07:00
dfc4db1860 Document environment variable interpolation (#546). 2022-06-16 15:30:53 -07:00
35706604ea Upgrade documentation base images. 2022-06-16 15:22:59 -07:00
6d76e8e5cb Code formatting. 2022-06-16 14:21:18 -07:00
aecb6fcd74 Code style, rename command-line flag, and move new code into its own file (#546) 2022-06-16 11:35:24 -07:00
ea45f6c4c8 Environment variable resolution in configuration file (#546).
Reviewed-on: borgmatic-collective/borgmatic#548
2022-06-16 18:18:12 +00:00
97b5cd089d Allow environment variable resolution in configuration file
- all string fields containing an environment variable like ${FOO} will
  be resolved
- supported format ${FOO}, ${FOO:-bar} and ${FOO-bar} to allow default
  values if variable is not present in environment
- add --no-env argument for CLI to disable the feature which is enabled
  by default

Resolves: #546
2022-06-16 18:52:54 +02:00
f2c2f3139e Add periods to ntfy config descriptions. 2022-06-10 09:42:41 -07:00
dc4e7093e5 Remove link to related software that hasn't seen updates in the past couple years. 2022-06-09 19:31:50 -07:00
b6f1025ecb Bump version for release. 2022-06-09 16:38:34 -07:00
65b2fe86c6 Fix Bash completion script to no longer alter your shell's settings. 2022-06-09 16:29:54 -07:00
0e90a80680 Add links in documentation for ntfy monitoring hook (#543). 2022-06-09 13:41:22 -07:00
7648bcff39 Add a hook for sending push notifications via ntfy.sh.
Reviewed-on: borgmatic-collective/borgmatic#543
2022-06-09 20:26:06 +00:00
a8b8d507b6
add a hook for sending push notifications via ntfy.sh 2022-06-09 21:10:38 +01:00
3561c93d74 Fix Healthchecks tests that leak global state, breaking downstream tests (discovered in #543). 2022-06-09 11:05:44 -07:00
331a503a25 Document the borgmatic version in which "borgmatic list --find" is available (#541). 2022-06-03 16:55:54 -07:00
9aefb5179f Fix None find paths (#541). 2022-06-03 15:20:05 -07:00
d14f22e121 Add "borgmatic list --find" flag for searching for files across multiple archives (#541). 2022-06-03 15:12:14 -07:00
b6893f6455 Exclude deprecated "borg list --successful" flag from getting passed to Borg. 2022-06-02 21:14:25 -07:00
80ec3e7d97 Deprecate "borgmatic list --successful" flag, as listing only non-checkpoint (successful) archives is now the default in newer versions of Borg. 2022-06-02 20:35:39 -07:00
cd834311eb Clarify completion docs. 2022-06-01 10:57:23 -07:00
d751cceeb0 Merge branch 'master' of ssh://projects.torsion.org:3022/borgmatic-collective/borgmatic 2022-06-01 10:38:05 -07:00
ce78b07e4b Add macOs to install and Bash completion documentation.
Reviewed-on: borgmatic-collective/borgmatic#540
2022-06-01 17:37:51 +00:00
87f3c50931 setup: add macOS 2022-06-01 15:56:40 +00:00
8e9e06afe6 Bump version for release. 2022-05-31 09:41:20 -07:00
2bc91ac3d2 Add "generate-borgmatic-config --overwrite" flag to replace an existing destination file (#539). 2022-05-29 16:03:55 -07:00
5b615d51a4 Add support for "borgmatic borg debug" command (#538). 2022-05-29 15:43:03 -07:00
c7f5d5fd0b Fix broken Bash completion of filenames, as in "-c config.yaml". 2022-05-29 10:49:33 -07:00
6ef7538eb0 Fix typo in Bash completions script. 2022-05-28 19:34:13 -07:00
8fa90053cf Add "borgmatic check --force" flag to ignore configured check frequencies (#523). 2022-05-28 19:29:33 -07:00
b3682b61d1 Add another note about the consistency checks schema in old versions (#523). 2022-05-28 19:03:45 -07:00
ad0e2e0d7c Tweak default check frequency to 1 month (#523). 2022-05-28 15:49:50 -07:00
6629f40cab In bash completion script, warn when script is out of date using script contents instead of version. (Fewer spurious warnings that way.) 2022-05-28 15:27:11 -07:00
e76bfa555f Reduce the default consistency check frequency and support configuring the frequency independently for each check (#523). 2022-05-28 14:42:19 -07:00
8ddb7268eb Reuse "borg info" function. 2022-05-27 13:51:11 -07:00
cb5fe02ebd Fix broken Bash completion end-to-end test. 2022-05-26 11:18:46 -07:00
77b84f8a48 Add Bash completion script so you can tab-complete the borgmatic command-line. 2022-05-26 10:27:53 -07:00
691ec96909 Fix python_requires to support all versions of 3.7 (#537).
Reviewed-on: borgmatic-collective/borgmatic#537
2022-05-26 15:51:46 +00:00
29b4666205 Fix python_requires to support all versions of 3.7
This is the standard way to support "Python 3.7 and newer" and it also
fixes use of borgmatic with some tools that do custom dependency
resolution.  E.g., using pex with --platform.
2022-05-26 07:05:04 -07:00
316a22701f Add documentation note about multiple merge limitation (#380). 2022-05-25 23:12:42 -07:00
be59a3e574 Fix generate-borgmatic-config with "--source" flag to support more complex schema changes like the new Healthchecks configuration options (#536). 2022-05-25 10:26:26 -07:00
37327379bc Merge branch 'master' of ssh://projects.torsion.org:3022/borgmatic-collective/borgmatic 2022-05-24 17:50:57 -07:00
22c2f13611 Remove trailing whitespace (#535).
Reviewed-on: borgmatic-collective/borgmatic#535
2022-05-25 00:50:12 +00:00
8708ca07f4 Remove trailing whitespace 2022-05-25 00:43:40 +00:00
634d9e4946 Bump version for release. 2022-05-24 16:22:37 -07:00
54933ebef5 Change connection failures for monitoring hooks to be warnings instead of errors (#439). 2022-05-24 15:50:04 -07:00
157e59ac88 Add Healthchecks monitoring hook "send_logs" option to enable/disable sending borgmatic logs to the Healthchecks server (#460). 2022-05-24 14:44:33 -07:00
666f0dd751 Add missing Healthchecks "states" option example in configuration schema (#525). 2022-05-24 14:17:19 -07:00
8b179e4647 Reverse logic of Healtchecks "skip_states" option to just "states" (#525). 2022-05-24 14:09:42 -07:00
865eff7d98 Add Healthchecks monitoring hook "skip_states" option to disable pinging for particular monitoring states (#525). 2022-05-24 13:59:28 -07:00
b9741f4d0b Add Healthchecks monitoring hook "ping_body_limit" option to configure how many bytes of logs to send to the Healthchecks server (#294). 2022-05-24 12:23:38 -07:00
02781662f8 Change monitoring hooks to specify the ping URL / integration key as a named option. 2022-05-23 20:02:10 -07:00
32a1043468 Remove the error when "archive_name_format" is specified but a retention prefix isn't (#402). 2022-05-23 16:11:24 -07:00
3e4aeec649 Warn when an unsupported variable is used in a hook command (#420). 2022-05-23 15:27:54 -07:00
b98b827594 Remove stale comment. 2022-05-23 10:59:56 -07:00
255cc6ec23 When deep merging common configuration, merge colliding list values by appending them (#531). 2022-05-20 15:28:28 -07:00
51fc37d57a Improve the error message when a configuration override contains an invalid value (#528). 2022-05-20 13:38:53 -07:00
1921f55a9d Add emojis to documentation table of contents to make it easier to find particular how-to and reference guides at a glance. 2022-05-20 11:11:35 -07:00
fbd381fcc1 Clarify manual database extraction documentation. 2022-05-20 10:06:19 -07:00
cd88f9f2ea Better explain where to find the dump file when doing a manual restore (#510).
Reviewed-on: borgmatic-collective/borgmatic#510
2022-05-20 16:33:21 +00:00
788281cfb9 When a configuration include is a relative path, load it from either the current working directory or from the directory containing the file doing the including (#532). 2022-05-19 17:15:05 -07:00
cd234b689d Link to additional borgmatic Docker image. 2022-05-12 12:00:12 -07:00
92354a77ee Mention that database dumps consumed disk space prior to borgmatic 1.5.3. 2022-05-09 16:08:47 -07:00
48ff3e70d1 Clarify documentation about include merging mappings vs. values. 2022-05-08 14:48:42 -07:00
7e9adfb899 Add NEWS entry for randomized systemd timer delay. 2022-05-07 23:11:26 -07:00
e238e256f7
Add randomized delay to systemd timer.
Merge pull request from Daniel15/patch-1
2022-05-07 23:08:02 -07:00
Daniel Lo Nigro
3ecb92a8d2
Add randomized delay to systemd timer 2022-05-07 16:42:06 -07:00
d58d450628 Remove stale borgmatic binary link. 2022-04-30 09:50:40 -07:00
dee9c6e293 Remove link to stale borgmatic Docker image. 2022-04-30 09:46:08 -07:00
897c4487de Add mention in documentation about multiple backup scheduling needs (#511). 2022-04-28 11:16:31 -07:00
48b50b5209 Add documentation link to NEWS. 2022-04-26 10:24:25 -07:00
13bae8c23b Typo. 2022-04-26 10:12:02 -07:00
4a48e6aa04 Bump version for release. 2022-04-26 10:07:04 -07:00
525266ede6 Deep merging when including common configuration (#381). 2022-04-25 21:18:37 -07:00
d045eb55ac Add mention of sudo's "secure_path" option in borgmatic installation documentation (#513). 2022-04-23 14:29:55 -07:00
0e6b425ac5 Fix "borgmatic borg key ..." to pass parameters to Borg in correct order (#515). 2022-04-23 14:03:15 -07:00
bdc26f2117 Add note about old, pre-1.6.0 hooks behavior. 2022-04-22 19:58:28 -07:00
ed7fe5c6d0 Instead of executing "before" command hooks before all borgmatic actions run (and "after" hooks after), execute these hooks right before/after the corresponding action (#473). 2022-04-21 22:08:25 -07:00
cbce6707f4 Clarify one_file_system behavior in schema comment (#520). 2022-04-12 11:05:22 -07:00
e40e726687 Change Healthchecks logs truncation size from 10k bytes to 100k bytes, corresponding to that same change on Healthchecks.io. 2022-04-06 22:00:18 -07:00
0c027a3050 Fix handling of TERM signal to exit borgmatic, not just forward the signal to Borg (#516). 2022-04-03 13:12:48 -07:00
9f44bbad65 Fix borgmatic exit code (so it's zero) when initial Borg calls fail but later retries succeed (#517). 2022-04-02 22:28:41 -07:00
413a079f51 Clarify Python version support. 2022-03-28 21:57:40 -07:00
6f3accf691 Better explain where to find the dump file
I really had problem finding the dump file with the explanation as give before. I thought that the `~/.borgmatic/` would be my current user. So looked into `/home/gerd/.borgmatic` (wrong). Then I looked into `<EXTRACTED_DESTINATION_PATH/.borgmatic` (again wrong). Then finally (1h later and after having already prepared a bug ticketI figured out that the dump file is within `<EXTRACTED_DESTINATION_PATH/root/.borgmatic`. Hard to find because of course I d not only have `root` within `<EXTRACTED_DESTINATION_PATH/` but also all other backup'ed directories (including /etc/, /home/ on so on...)
2022-03-17 04:51:47 +00:00
5b3cfc542d Switch to PyPI API token. 2022-03-14 14:00:03 -07:00
c838c1d11b Fix header placement in documentation guide. 2022-03-14 13:50:22 -07:00
4d1d8d7409 Bump version for release. 2022-03-14 13:43:24 -07:00
db7499db82 Document "repositories" context to for "before_*" and "after_*" command action hooks (#469). 2022-03-14 13:34:14 -07:00
6b500c2a8b Add repositories context for command hooks.
Reviewed-on: borgmatic-collective/borgmatic#469
2022-03-14 20:13:15 +00:00
95c518e59b Documentation tip about dealing with hangs when database hook is enabled. 2022-03-12 13:17:32 -08:00
976516d0e1 When loading a configuration file that is unreadable due to file permissions, warn instead of erroring (#444). 2022-03-08 10:19:36 -08:00
574eb91921 Fix Borg usage error in the "compact" action when running "borgmatic --dry-run". Now, skip "compact" entirely during a dry run (#507). 2022-03-07 21:46:12 -08:00
28fef3264b Fix handling of "patterns_from" and "exclude_from" options to error instead of warning when referencing unreadable files and running "create" action (#486). 2022-03-07 15:32:07 -08:00
9161dbcb7d Removing unnecessary leading underscores from functions. 2022-03-07 11:58:29 -08:00
4b3027e4fc Add test for new working_directory option (#431). 2022-03-03 11:48:18 -08:00
0eb2634f9b Working directory option to support source directories with relative paths (#431).
Reviewed-on: borgmatic-collective/borgmatic#477
2022-03-03 19:28:17 +00:00
7c5b68c98f Bump version for release. 2022-02-10 10:29:18 -08:00
9317cbaaf0 Code formatting. 2022-02-10 10:23:34 -08:00
1b5f04b79f When using the "remote_rate_limit" option, tailor the flags passed to Borg depending on the Borg version (#394). 2022-02-10 10:16:09 -08:00
948c86f62c When using the "numeric_owner" option with the "extract" action, tailor the flags passed to Borg depending on the Borg version (#394). 2022-02-10 10:09:18 -08:00
7e7209322a When using the "numeric_owner" option, tailor the flags passed to Borg depending on the Borg version (#394). 2022-02-10 09:51:13 -08:00
00a57fd947 Code formatting. 2022-02-09 21:20:28 -08:00
6bf6ac310b When using the "bsd_flags" option, tailor the flags passed to Borg depending on the Borg version (#394). 2022-02-09 21:11:00 -08:00
4b5af2770d When the "atime" option is used, tailor the flags passed to Borg depending on version (#394). 2022-02-09 16:54:35 -08:00
b525e70e1c Run "compact" action by default when no actions are specified (#394). 2022-02-09 14:33:12 -08:00
4498671233 Remove references to removed long-deprecated options (#394). 2022-02-09 11:08:02 -08:00
9997aa9a92 Fix capitalization on compact help. 2022-02-08 15:58:09 -08:00
cbf7284f64 Add compact action to command-line reference documentation. 2022-02-08 15:37:24 -08:00
ee466f870d Fixing ruamel.yaml.clib breakages harder. 2022-02-08 13:21:11 -08:00
e3f4bf0293 Build fix for ruamel.yaml.clib error. 2022-02-08 12:52:45 -08:00
46688f10b1 Merge branch 'master' of ssh://projects.torsion.org:3022/borgmatic-collective/borgmatic 2022-02-08 12:10:57 -08:00
48f44d2f3d Add tests for compact action (#394). 2022-02-08 12:05:02 -08:00
bff1347ba3 Fix some test failures (#394). 2022-02-08 09:35:03 -08:00
9582324c88 Compact repository segments with new "borgmatic compact" action (#394). 2022-02-07 23:29:44 -08:00
bb0716421d Add comment about systemd service setting that may interfere with external commands in hooks (#492). 2022-01-25 09:26:11 -08:00
bec73245e9 Fix traceback when a YAML validation error occurs (#480, #482). 2022-01-19 20:39:03 -08:00
dcead12e86 Attempt to fix documentation build error introduced by Eleventy upgrade. 2022-01-09 14:21:27 -08:00
0119514c11 Add Python version requirements to setup.py. 2022-01-09 10:19:53 -08:00
b39f08694d Merge branch 'master' into pr-working-directory 2022-01-05 09:30:27 +00:00
80bdf1430b Bump version for release. 2022-01-04 20:20:13 -08:00
2ee75546f5 Add MongoDB database hook documentation. 2022-01-04 16:26:38 -08:00
07d7ae60d5 Add MongoDB database hook (#288).
Reviewed-on: borgmatic-collective/borgmatic#483
2022-01-04 23:50:25 +00:00
87001337b4 Merge master into mongodb_hook 2022-01-04 22:20:44 +01:00
2e9964c200 Remove references to Lima Labs (shut down their storage business).
Reviewed-on: borgmatic-collective/borgmatic#488
2022-01-03 17:34:38 +00:00
3ec3d8d045 Remove references to Lima Labs
From their homepage:
> Lima Labs is shutting down our storage business. We will try to keep data available as long as possible. No promises but we are targeting 3/1/2022 to bring down Archive and Canada.
2022-01-03 02:29:38 -05:00
96384d5ee1 Attempt to fix typed-ast build issue by relaxing version requirements in test. 2022-01-02 23:22:24 -08:00
8ed5467435 Drop support for Python 3.6. Add support for 3.10. 2022-01-02 23:17:57 -08:00
7c6ce9399c fix integration tests and mongodb auth 2021-12-29 22:18:50 +01:00
6b7653484b Add mongodb dump hook 2021-12-26 01:00:58 +01:00
Fabian Schilling
85e0334826 Add missing working_directory arg to pass tests 2021-12-10 18:24:41 +01:00
Fabian Schilling
2a80e48a92 Pass working directory to execute functions 2021-12-10 18:23:44 +01:00
Fabian Schilling
5821c6782e Add defaults to not set in schema 2021-12-10 18:23:08 +01:00
Fabian Schilling
f15498f6d9 Add working_directory to borgmatic schema 2021-12-10 17:58:27 +01:00
a1673d1fa1 Fix unicode error when restoring particular MySQL databases (#476). 2021-12-08 16:40:25 -08:00
2e99a1898c Fix f-string with missing expression. 2021-11-29 14:05:36 -08:00
7a086d8430 Fix import ordering. 2021-11-29 14:00:14 -08:00
0e8e9ced64 When command-line configuration override produces a parse error, error cleanly (#471). 2021-11-29 12:49:21 -08:00
f34951c088 Add MySQL dump command adjustment to NEWS. 2021-11-29 12:10:04 -08:00
c6f47d4d56 Move mysqldump options to the beginning of the command due to MySQL bug 30994 (#470).
Reviewed-on: borgmatic-collective/borgmatic#470
2021-11-29 20:08:59 +00:00
c3e76585fc
move mysqldump options to the beginning of the command due to MySQL bug 30994. 2021-11-26 17:16:03 +01:00
0014b149f8 remove configuration_filename as it's already set. 2021-11-26 11:38:58 +08:00
091c07bbe2 Add context for various hooks. 2021-11-26 11:35:10 +08:00
240547102f Enable auto-play on linked asciicast. 2021-11-25 13:09:55 -08:00
2bbd53e25a
Merge pull request #43 from acsfer/patch-1
Github doesn't allow script embedding
2021-11-25 13:06:43 -08:00
58f2f63977
Switch to HTML 2021-11-25 22:03:26 +01:00
7df6a78c30
Github doesn't allow script embedding 2021-11-25 21:36:31 +01:00
c646edf2c7 Bump version for release. 2021-11-22 13:19:15 -08:00
bcc820d646 Add list_options setting (#306).
Reviewed-on: borgmatic-collective/borgmatic#464
2021-11-22 21:14:02 +00:00
3729ba5ca3
add list_options setting, fixes #306 2021-11-20 15:43:58 +01:00
9c19591768 Revise hosting provider links. 2021-11-15 20:06:09 -08:00
38ebfd2969 Rename retry_timeout to retry_wait and standardize log formatting (#28). 2021-11-15 11:51:17 -08:00
180018fd81 Retry failing backups (#28, #432).
Reviewed-on: borgmatic-collective/borgmatic#432
2021-11-15 19:34:24 +00:00
794ae94ac4 Attempt to limit documentation pushing to commits (so, not pull requests). 2021-11-15 11:08:26 -08:00
4eb6359ed3 Remove now-unneeded build image workaround. 2021-11-15 10:56:12 -08:00
cadamswaite
976a877a25 Formatting 2021-11-14 22:37:42 +00:00
cadamswaite
b4117916b8 Add timeout and tests 2021-11-14 22:15:22 +00:00
cadamswaite
19cad89978 Add some tests for retry logic 2021-11-14 21:35:23 +00:00
6b182c9d2d Merge branch 'master' into master 2021-11-14 18:24:17 +00:00
4d6ed27f73 Add to changelog: Add support for old version (2.x) of jsonschema library. 2021-10-23 09:49:16 -07:00
745a8f9b8a Add support for both jsonschema v3 and old v2 (#459).
Reviewed-on: borgmatic-collective/borgmatic#459
2021-10-23 16:47:53 +00:00
6299d8115d Limit documentation build to master of main repo, as it pushes a Docker image. 2021-10-23 09:45:17 -07:00
717cfd2d37 validate: add support for both jsonschema v3 and old v2
RHEL8 and RHEL7 have old jsonschema v2. Try v3 (Draft7) first but
fallback to v2 (Draft4) if needed.
2021-10-23 15:04:07 +03:00
7881327004 Upgrade CI test dependencies. 2021-10-22 14:07:14 -07:00
549aa9a25f Update editable link. 2021-10-22 14:06:27 -07:00
1c6890492b Bump version for release. 2021-10-11 17:02:32 -07:00
a7c8e7c823 Bump version for release. 2021-10-11 11:13:32 -07:00
c8fcf6b336 Mention changing borgmatic path in cron documentation (#455). 2021-10-11 11:02:08 -07:00
449896f661 Fix error when configured source directories are not present on the filesystem at the time of backup (#387). 2021-10-11 10:40:10 -07:00
1004500d65 Update sample systemd service file comments about more granular read-only filesystem settings. 2021-10-11 09:33:07 -07:00
0a8d4e5dfb
Add more strict ProtectHome to systemd sample configuration.
Merge pull request #42 from VTimofeenko/systemd_protecthome
2021-10-11 09:26:28 -07:00
38e35bdb12 Skip TLS verify in documentation build clone to work around old drone/git CA certs. 2021-10-04 14:31:15 -07:00
65503e38b6 Sigh. 2021-10-04 13:14:19 -07:00
d0c5bf6f6f Another attempt to unbreak build. 2021-10-04 13:13:35 -07:00
f129e4c301 Attempt to work-around outdated CA certificates in drone/git Docker image. 2021-10-04 13:09:44 -07:00
fbbb096cec Note in documentation that borgmatic requires Python 3.6+. 2021-10-04 11:15:51 -07:00
77980511c6 Add another glob pattern example to exclude patterns. 2021-09-16 09:51:40 -07:00
4ba206f8f4 Update build server URL to new organization namespace. 2021-09-14 11:35:34 -07:00
ecc849dd07 Move Gitea hosting from a personal namespace to an organization. 2021-09-14 11:32:01 -07:00
7ff6066d47 Move GitHub hosting from a personal namespace to an organization. 2021-09-14 10:18:10 -07:00
2bb1fc9826 Mention Docker Compose under installation options. 2021-09-12 13:15:34 -07:00
Vladimir Timofeenko
6df6176f3a
Added more strict ProtectHome to systemd unit
This commit changes the comment in sample systemd service.

Using a combination of 'ProtectHome' and 'BindPaths' it's possible to
hide the irrelevant paths inside /root from borgmatic service when it is
run.

ReadWritePaths are suggested to be used only for paths that contain borg
repositories and the backup sources can be specified as ReadOnlyPaths.
2021-08-30 11:20:34 -07:00
acb2ca79d9 Fix traceback that can occur when dumping a database (#440). 2021-08-06 08:58:11 -07:00
c9211320e1 Fix dev version in changelog. 2021-08-04 15:32:51 -07:00
760286abe1 Dev release bump. 2021-07-30 09:49:07 -07:00
5890a1cb48 Fix "message too long" error when logging to rsyslog (#389). 2021-07-30 09:48:13 -07:00
b3f5a9d18f Fix error when configuration file contains "umask" option (#437). 2021-07-27 10:04:22 -07:00
80b33fbf8a Code style reformatting. 2021-07-27 09:39:48 -07:00
5389ff6160
Merge pull request #41 from mkszuba/tests_no_xxd
tests/integration/test_execute: use plain Python rather than xxd
2021-07-27 09:39:02 -07:00
Marek Szuba
e8b8d86592 tests/integration/test_execute: use plain Python rather than xxd
Removes this test's dependencies on vim and /dev/urandom.

Signed-off-by: Marek Szuba <marek.szuba@cern.ch>
2021-07-27 13:50:16 +01:00
92d729a9dd Try temporary work around for Drone build bug: https://github.com/drone-plugins/drone-docker/pull/327 2021-07-26 16:33:41 -07:00
c63219936e Wording tweaks to security policy. 2021-07-26 13:44:14 -07:00
0aff497430 Bump version for release. 2021-07-26 10:17:49 -07:00
1f3907a6a5 Fix for failing PostgreSQL directory format test (#430). 2021-07-26 09:42:14 -07:00
2a8692c64f Fix integration test to hopefully work on Alpine (#430). 2021-07-25 22:50:00 -07:00
1709f57ff0 Fix hang when restoring a PostgreSQL "tar" format database dump (#430). 2021-07-25 22:30:15 -07:00
cadamswaite
89baf757cf Sort imports 2021-07-14 23:17:35 +01:00
cadamswaite
4f36fe2b9f Run Black on changed file 2021-07-14 22:53:01 +01:00
cadamswaite
510449ce65 Change default retries to 0 2021-07-14 22:49:03 +01:00
cadamswaite
4cc4b8d484 Add queue based retry logic 2021-07-14 22:46:02 +01:00
9c972cb0e5 Add documentation note about systemd configuration with alternate install methods (#428). 2021-06-29 21:38:53 -07:00
9b1779065e Pin ruamel.yaml.clib to work around docs build issue. 2021-06-29 21:35:46 -07:00
057ec3e59b Add NEWS entry for #379: Suppress console output in sample crontab and systemd service files. 2021-06-23 10:35:41 -07:00
bc2e611a74 Suppress console output in sample crontab/systemd service files (#379).
Reviewed-on: witten/borgmatic#379
2021-06-23 17:32:47 +00:00
b6d3a1e02f Merge branch 'master' of ssh://projects.torsion.org:3022/witten/borgmatic 2021-06-23 10:22:07 -07:00
54d57e1349 Add test for #407: Fix syslog logging on FreeBSD. 2021-06-23 10:21:45 -07:00
af0b3da8ed Fix syslog logging on FreeBSD (#407).
Reviewed-on: witten/borgmatic#407
2021-06-23 17:21:25 +00:00
27d37b606b Better error messages! Switch the library used for validating configuration files (from pykwalify to jsonschema). 2021-06-22 13:27:59 -07:00
77a860cc62 Link borgmatic Ansible role from installation documentation. 2021-06-19 19:04:22 -07:00
7bd6374751 Bump version for release. 2021-06-17 20:44:54 -07:00
cf8882f2bc Run arbitrary Borg commands with new "borgmatic borg" action (#425). 2021-06-17 20:41:44 -07:00
b37dd1a79e Document use case of running backups conditionally based on laptop power level (#419). 2021-06-09 10:03:35 -07:00
fd59776f91 Bump version for release. 2021-06-08 11:44:53 -07:00
9fd28d2eed Fix error handling to error loudly when Borg gets killed due to running out of memory (#423)! 2021-06-08 11:43:55 -07:00
f5c61c8013 Move #borgmatic IRC channel from Freenode to Libera Chat due to Freenode takeover drama. 2021-06-06 21:09:40 -07:00
88cb49dcc4 Fix release script based on GitHub authentication query parameter deprecation. 2021-04-24 20:27:53 -07:00
73235e59be Upgrade "py" test dependency (security). 2021-04-20 10:39:49 -07:00
7076a7ff86 Add link to Hetzner storage offering from the documentation (#390). 2021-04-18 18:03:43 -07:00
d6e376d32d Fix end-to-end test broken by change in source directory examples. 2021-04-18 17:54:54 -07:00
9016f4be43 Clarify that spaces in path names should not be backslashed in path names (#406). 2021-04-18 17:28:11 -07:00
d1c403999f
Reduce console output in sample crontab/systemd service files.
As borgmatic will log to syslog in the sample crontab/systemd service
files, this makes console output redundant. (cron will mail any console
output to the root user; systemd will log any console output to syslog.)

This adds --verbosity -1 to both files to reduce console output to the
minimum.
2021-04-13 01:40:57 +08:00
d543109ef4 "Fix" build failure with Alpine Edge by switching from Edge to Alpine 3.13. 2021-04-09 15:58:23 -07:00
7085a45649 Fix build so as not to attempt to build and push documentation for a non-master branch. 2021-04-09 15:04:09 -07:00
cf4c603f1d Clarify canonical home of borgmatic in documentation (#398). 2021-04-09 14:54:21 -07:00
d2533313bc
Fix syslog logging on FreeBSD
The UNIX domain socket to use on FreeBSD is /var/run/log.
See syslogd FreeBSD man page: https://www.freebsd.org/cgi/man.cgi?query=syslogd&sektion=8
2021-04-02 14:11:50 +02:00
c43b50b6e6 Upgrade PyYAML. 2021-03-30 22:29:20 -07:00
c072678936 Add support for ruamel.yaml 0.17.x YAML parsing library (#404). 2021-03-30 15:53:19 -07:00
631da1465e Add support for Python 3.9. 2021-03-30 15:36:26 -07:00
f29519a5cd
Merge pull request #38 from lukehsiao/patch-1
Fix link to issue tracker in documentation
2021-03-20 15:45:15 -07:00
Luke Hsiao
5d82b42ab8
Fix link to issue tracker in documentation
Fixes: a1d986d952
2021-03-18 17:26:37 -07:00
4897a78fd3 Fix database tests broken by PostgreSQL upgrade in Alpine Edge. 2020-12-24 22:23:09 -08:00
a1d986d952 Replace "improve this documentation" form with link to support and ticket tracker. 2020-12-24 14:57:51 -08:00
717c90a7d0 Clarify in systemd service file comment that security settings are optional. 2020-12-09 10:08:07 -08:00
8fde19a7dc Update systemd service example to return a permission error when a system call isn't permitted. 2020-11-30 22:14:28 -08:00
ad7198ba66 Tweak to test failing on some machines. 2020-11-26 16:22:42 -08:00
eb4b4cc92b Fix line length in schema. 2020-11-25 19:21:06 -08:00
41bf520585 Document that passphrase is used for Borg keyfile encryption, not just repokey encryption (#373). 2020-11-25 18:36:23 -08:00
c0ae01f5d5 Code formatting. 2020-11-25 17:46:57 -08:00
8b8f92d717 Prevent newer (borgmatic-unsupported) version of Black code formatter installing in Alpine Edge. 2020-11-25 17:42:04 -08:00
ccd1627175 Fix timing-related test error in Alpine Edge. 2020-11-25 15:48:33 -08:00
b8a7e23f46 Add missing pip to test script. 2020-11-22 17:42:58 -08:00
1f4f28b4dc Drop support for Python 3.5. Only support black code formatter on Python 3.8+. 2020-11-22 17:27:21 -08:00
ea6cd53067 Update versions of test dependencies (test_requirements.txt and test containers). 2020-11-22 14:48:07 -08:00
267138776d Add protection for accidentally releasing a dev version. 2020-11-21 14:03:39 -08:00
604b3d5e17 Bump version. 2020-11-21 13:56:19 -08:00
667e1e5b15 Update document about new --override behavior (#361). 2020-11-19 11:01:53 -08:00
9b819f32f8 Fix traceback when upgrading old INI-style configuration with upgrade-borgmatic-config (#367). 2020-11-18 15:01:10 -08:00
b619bde037 Fix broken end-to-end test. 2020-11-18 14:20:07 -08:00
97af16bd86 Add Lima-Labs to examples. 2020-11-18 12:05:38 -08:00
fa75f89acc Merge ssh://projects.torsion.org:3022/witten/borgmatic 2020-11-18 11:54:44 -08:00
222b61b577 Update changelog with note about #369. 2020-11-18 11:26:20 -08:00
e77757f0fd Mention placeholders for repositories in documentation; fix #369
Reviewed-on: witten/borgmatic#371
2020-11-18 19:24:59 +00:00
ebac02f118 Mention placeholders for repositories in documentation; fix #369 2020-11-18 20:22:41 +01:00
1c9ae81987 Fix signal forwarding from borgmatic to Borg resulting in recursion traceback (#368). 2020-11-18 10:29:03 -08:00
7b1fb68c18 Add referral link to Lima-Labs. 2020-11-17 14:04:24 -08:00
8aa7830f0d Fix broken "--override" action in Python 3.7 and below. 2020-11-15 13:39:15 -08:00
79bee755ee
Merge pull request #37 from ThorpeJosh/patch-1
Fix typo in large backup docs.
2020-11-03 22:22:12 -08:00
Josh Thorpe
cde0ee96ff
Fix typo in large backup docs 2020-11-04 17:20:32 +11:00
1ea04aedf0 Merge override values when specifying the "--override" flag multiple times (#361). 2020-10-23 16:06:00 -07:00
446a2bc15a
Fixed minor typo in help for "info" command. 2020-10-11 15:08:43 -07:00
Diego Blanco
2d10e758e0 Fixed minor typo in help for "info" command 2020-10-12 00:04:15 +02:00
0e978299cf Fix traceback when a database hook value is null in a configuration file (#355). 2020-10-07 15:41:45 -07:00
d06c1f2943 Minor edit. 2020-09-21 10:00:38 -07:00
d768b50b97 Add note about empty source_directories.
Reviewed-on: witten/borgmatic#358
2020-09-21 16:59:18 +00:00
034ade48f2
Add note about empty source_directories 2020-09-21 17:35:26 +02:00
d1e9f74087 Restore referal link. 2020-08-27 15:21:53 -07:00
f262f77dbd Add temporary_directory option to changelog. 2020-08-26 09:51:55 -07:00
a3387953a9 Add configuration option for settings Borg's temporary directory (#341).
Reviewed-on: witten/borgmatic#356
2020-08-26 16:54:49 +00:00
root
7cad5a8608 Add temporary_directory as a configuration option defaulting to $TMPDIR 2020-08-26 15:29:02 +00:00
9b83fcbf06 Add comment about MemoryDenyWriteExecute value and the tradeoffs thereof. 2020-08-23 14:11:19 -07:00
32a93ce8a2 Loosen systemd memory security setting to allow Healthchecks ping. 2020-08-22 13:37:34 -07:00
e428329c03 Add systemd security improvement to NEWS. 2020-08-22 09:49:06 -07:00
e844bbee15 Improve systemd security settings (#352). 2020-08-22 16:50:06 +00:00
631c3068a9 systemd security settings 2020-08-22 15:41:25 +02:00
79d4888e22 Add documentation navigation links on left side of all documentation pages. 2020-08-21 14:27:47 -07:00
de61fdef48 Mention "before_extract"/"after_extract" in README. 2020-08-12 14:12:58 -07:00
93caeba200 Add before_extract and after_extract hooks (#347).
Reviewed-on: witten/borgmatic#347
2020-08-12 21:14:15 +00:00
3c723e8d99 Merge branch 'master' into master 2020-08-12 21:11:45 +00:00
c5776447b9 fixed description strings for before_extract and after_extract 2020-08-12 23:07:57 +02:00
5356f487a5 Move before/after_everything hooks so they're easier to find. 2020-08-12 13:46:31 -07:00
72bd96c656 Fix traceback when a configuration directory is non-readable due to directory permissions (#350). 2020-08-12 11:32:00 -07:00
f611fe7be3 Clarify documentation overview of monitoring options. 2020-08-12 10:40:39 -07:00
dd6ea40a36 Clarify encryption section: It's not just for cron users. 2020-08-10 14:43:03 -07:00
ea1274d1c6 Remove inactive referral link. 2020-08-07 10:55:05 -07:00
8526468975
Fix configuration schema comment on after_everything option. 2020-08-07 09:49:25 -07:00
Jakub Duchateau
95c415f416
Change "before" to "after" in desc 2020-08-07 16:41:35 +02:00
06dc336481 Fix schema exclude patterns example path. 2020-08-06 09:59:48 -07:00
893fca2816 Add before_extract and after_extract hooks 2020-08-01 16:08:32 +02:00
99590cb6b6 Clarify documentation on configuration overrides, specifically the portion about list syntax. 2020-07-23 21:33:42 -07:00
b3fd1be5f6 Add "borgmatic export-tar" action to export an archive to a tar-formatted file or stream (#300). 2020-07-22 21:53:55 -07:00
a23083f737 Clarify schema documentation about skipping pruning. 2020-07-22 10:35:16 -07:00
8306b758e8 Add documentation on how to make backups redundant with multiple repositories. 2020-07-17 16:00:50 -07:00
218cbd5289 In database documentation, include command for finding named pipes and special devices. 2020-07-13 10:56:59 -07:00
2ac58670d5 Clarify database documentation about excluding named pipes and character/block devices to prevent hangs. 2020-07-13 10:45:58 -07:00
6f82c9979b Add #339 to NEWS and add test. 2020-07-07 22:31:17 -07:00
0a659a397f Attempt to fix no-repro test failure of log_outputs() (#339). 2020-07-07 22:05:53 -07:00
2781873faf Bump version for release. 2020-06-30 21:47:34 -07:00
3aaa89fb08 Formatting. 2020-06-25 20:25:29 -07:00
35d542a676 Fix for traceback when running Cronitor, Cronhub, and PagerDuty monitor hooks (#336). 2020-06-25 20:23:25 -07:00
d0b9c436b1 Bump version for release. 2020-06-23 11:21:43 -07:00
37cc229749 Fix duplicate logging to Healthchecks and send "after_*" hooks output to Healthchecks (#328). 2020-06-23 11:01:03 -07:00
17c2d109e5 Add tests for pass-through of BORG_* environment variables. 2020-06-21 14:41:22 -07:00
c8d5de2179 Fix broken pass-through of BORG_* environment variables to Borg (#327).
Reviewed-on: witten/borgmatic#327
2020-06-21 21:29:59 +00:00
32e15dc905 Add a few more mocks to PostgreSQL SSL tests. 2020-06-20 14:39:16 -07:00
f5ebca4907 Add SSL support to PostgreSQL database configuration (#331).
Reviewed-on: witten/borgmatic#331
2020-06-20 21:24:14 +00:00
01db676d68 Change the example for the ssl_mode parameter 2020-06-20 23:32:24 +03:00
d2d92b1f1a Add tests for the PostgreSQL SSL options 2020-06-20 23:32:24 +03:00
27cbe9dfc0 Fix for potential data loss (data not getting backed up) when borgmatic omitted configured source directories in certain situations (#333). 2020-06-19 20:16:38 -07:00
8fb830099f Re-add the ilbpq-ssl documentation URL to the schema
It's been moved from describing `ssl_mode` to the general
postgresql_database description key.
2020-06-19 13:22:39 +03:00
463a133a63 Ensure schema lines are less than 80 characters in length 2020-06-19 13:22:39 +03:00
a16fed8887 Rename PostgreSQL SSL config variables
e.g. s/sslmode/ssl_mode/g to conform with borgmatic naming conventions.
2020-06-19 13:20:14 +03:00
33113890f5 Reduce duplication with a common function 2020-06-19 12:32:36 +03:00
abd47fc14e Add SSL support to PostgreSQL hooks 2020-06-19 02:19:17 +03:00
7fb4061759 Improve configuration reference documentation readability via more aggressive word-wrapping in configuration schema descriptions. 2020-06-17 23:15:12 -07:00
b320e74ad5 Update documentation code fragments theme to better match the rest of the page. 2020-06-17 16:02:57 -07:00
0ed8f67b9d Documentation feedback: Clarify that a Borg manual install is required, separate from installing borgmatic. 2020-06-17 11:42:40 -07:00
a12a1121b6 Use values from BORG_* env variables if they are not specified in config.yaml 2020-06-15 19:50:11 +02:00
795e18773b Bump version for release. 2020-06-06 15:01:56 -07:00
aa14449857 Add "borgmatic extract --strip-components" flag to remove leading path components when extracting an archive (#324). 2020-06-06 14:57:14 -07:00
ed7b1cd3d7 Add some no-cover pragmas on functions that don't need tests. 2020-06-06 14:33:06 -07:00
a155eefa23 Fix for certain configuration options like ssh_command impacting Borg invocations for separate configuration files (#323). 2020-06-06 14:30:04 -07:00
398665be9e Allow before_backup and similiar hooks to exit with a soft failure without altering the monitoring status (#292). 2020-06-02 14:33:41 -07:00
6db232d4ac Link to Borgmacator GNOME AppIndicator from monitoring documentation. 2020-06-02 12:53:08 -07:00
d7277893fb Fix hang when a stale database dump named pipe from an aborted borgmatic run remains on disk (#316). 2020-06-02 12:40:32 -07:00
00033bf0a8 Tweak comment indentation in generated configuration file for clarity. 2020-06-02 11:37:13 -07:00
adda33dc4e Bump version for release. 2020-05-26 13:15:01 -07:00
097a09578a Fix enabled database hooks to implicitly set one_file_system configuration option to true to prevent Borg hang. (#315). 2020-05-26 09:20:14 -07:00
65472c8de2 Fix error message when there are no MySQL databases to dump for "all" databases (#319). 2020-05-26 08:59:04 -07:00
602ad9e7ee Add note about indirect dbus dependency. 2020-05-21 19:56:32 -07:00
96df52ec50 Fix hang when streaming a database dump to Borg with implicit duplicate source directories by deduplicating them first (#316). 2020-05-20 13:33:53 -07:00
244dc35bae Global install documentation. 2020-05-19 14:19:39 -07:00
d9c9d7d2ee Improve documentation around the installation process. Specifically, making borgmatic commands runnable via the system PATH. 2020-05-18 20:38:43 -07:00
89cb5eb76d Fix regression in support for PostgreSQL's "directory" dump format (#314). 2020-05-18 11:31:29 -07:00
6d3802335e Adding docs note about upgrading to get --files flag. 2020-05-18 08:43:32 -07:00
c1d6232b79 Fix documentation to mention new "--files" flag. 2020-05-15 10:45:58 -07:00
048a9ebb52 Add an additional end-to-end database test. 2020-05-15 10:12:49 -07:00
de478f6ff7 Clarify wording in changelog. 2020-05-14 23:23:21 -07:00
3e5a19d95a Add missing test coverage. 2020-05-14 23:21:43 -07:00
2ddf38f99c Fix error handling when executing commands to handle more edge cases. 2020-05-14 23:04:01 -07:00
d88f321cef Fix legitimate database dump command errors (exit code 1) not being treated as errors by borgmatic (#310). 2020-05-14 22:38:38 -07:00
74adac6c70 Bump version for release. 2020-05-12 21:03:09 -07:00
15ea70a71b Flesh out missing test coverage for execute.py. 2020-05-12 15:49:49 -07:00
8b91c01a4c Add some missing test coverage. 2020-05-11 11:34:14 -07:00
3bcef72050 Add some missing test mocks that were masking lack of unit coverage. 2020-05-11 11:17:24 -07:00
695c764a01 Merge log output functions into one. 2020-05-11 10:55:50 -07:00
f7c93ea2e8 Wait for process to finish before trying to check exit status. 2020-05-09 23:09:48 -07:00
1ea047dd94 Remove "borgmatic restore --progress" flag, as it now conflicts with streaming database restores. 2020-05-09 21:53:16 -07:00
4b523f9e2c Make database restore output only show at verbosity 2. 2020-05-08 19:38:33 -07:00
6a61070d85 Use shell redirection rather than the --file flag to sidestep synchronization issues when pg_dump/pg_dumpall tries to write to a named pipe. 2020-05-08 19:11:26 -07:00
f36082938e Additional test coverage. 2020-05-08 09:48:04 -07:00
1ba996ad93 Additional test coverage. 2020-05-07 12:14:27 -07:00
a23fdf946d Stream database dumps and restores directly to/from Borg without using any additional filesystem space (#258). 2020-05-07 11:44:04 -07:00
12cf6913ef Remove unused function parameter. 2020-05-03 14:07:34 -07:00
a4eef383c3 Spell out repository consistency check options in more detail. 2020-04-29 11:08:41 -07:00
ac124612ad Documentation on macOS launchd permissions issues with work-around for Full Disk Access (#293). 2020-04-26 16:10:52 -07:00
95a479a86e Fix path in release script. 2020-04-24 16:05:50 -07:00
e4eff0e3dc Bump version for release. 2020-04-24 15:56:56 -07:00
dce1928dc4
Fix PostgreSQL restore error on "all" database dump. 2020-04-24 15:50:33 -07:00
Nathan Beals
3c8dc4929f Added test_restore_all_database_dump unit test.
Updated the other unit tests, as I had to re-arrange argument order
Added an 'all' test for the postgres end-to-end test.

Ran black formatter on it all.
2020-04-24 18:32:53 -04:00
e511014a28 Fix MySQL restore error on "all" database dump by excluding system tables (#301). 2020-04-22 12:17:22 -07:00
bae5f88824 Upgrade test database versions. 2020-04-21 10:01:26 -07:00
41ad98653a https://github.com/docker/compose/issues/2127 2020-04-21 09:39:20 -07:00
6a138aeb6e Move root vs. non-root instructions. 2020-04-18 13:14:35 -07:00
f0ce37801b Add root vs. non-root to set up guide. 2020-04-17 20:30:10 -07:00
35f6aba365 Clarify that borgmatic should be run with sudo after a root --user install. 2020-04-17 09:46:50 -07:00
Nathan Beals
f6407bafcb Remove the --create flag, was causing an error 2020-04-10 11:24:13 -04:00
Nathan Beals
d5e9f67cec Finished. Now uses 'psql' to run the plain-text scripts that pg_dumpall creates 2020-04-10 10:55:53 -04:00
Nathan Beals
b14f371c05 First attempt at fixing this pg_dumpall/restoring issue 2020-04-10 09:20:00 -04:00
31a5d1b9c4 Docs feedback: Clarify PagerDuty integration instructions. 2020-03-26 14:14:53 -07:00
fb4305a953 Add link for Alpine packages of borgmatic to README. 2020-03-10 21:10:02 -07:00
eab872823c Clarify license version. 2020-03-09 15:50:54 -07:00
3332750243 More documentation examples of a la carte actions. 2020-03-09 11:20:18 -07:00
4942b7ce4d Feedback on PagerDuty hook documentation. 2020-02-13 13:11:25 -08:00
a2af77f363 Maybe fix release signing. 2020-02-03 09:57:34 -08:00
a7490b56d1 Bump version for release. 2020-02-03 09:45:10 -08:00
66eb18d5ea Upgrade pip and tox in tests. 2020-02-02 14:30:26 -08:00
46486138b6 Fix PagerDuty link. 2020-02-01 13:43:37 -08:00
d6562c4b1e Fix the "--stats" and "--files" flags so that they yield output at verbosity 0 (#290). 2020-01-31 10:23:36 -08:00
1ddde0910c Add security policy, such as it is. 2020-01-30 15:42:48 -08:00
79f3b84ca2 Documentation for "--archive latest" (#289). 2020-01-29 17:08:03 -08:00
55141bda67 Specify "--archive latest" to all actions that accept an archive (#289). 2020-01-29 16:59:02 -08:00
bc02c123e6 Monitor backups with PagerDuty hook integration (#245). 2020-01-27 15:32:09 -08:00
e76d5ad988 Fix tests. 2020-01-27 12:56:12 -08:00
8ad8a9c422 Add per-action hooks: "before_prune", "after_prune", "before_check", and "after_check" (#255). 2020-01-27 11:07:07 -08:00
b15c9b7dab Add missing "how to" text. 2020-01-24 21:02:56 -08:00
2405e97c38 Backup to a removable drive or intermittent server via "soft failure" feature (#284). 2020-01-24 20:52:48 -08:00
fdbb2ee905 View consistency check progress via "--progress" flag for "check" action (#287). 2020-01-24 11:27:16 -08:00
94b9ef56be Change "exclude_if_present" option to support multiple filenames, rather than just a single filename (#280). 2020-01-23 13:41:37 -08:00
952168ce25 Fix unwanted console log messages with "list --json" and "info --json". 2020-01-23 13:40:54 -08:00
5273037a94 For "list" and "info" actions, show repository names even at verbosity 0. 2020-01-23 11:17:39 -08:00
53e6ff9524 No longer list files or show stats by default at verbosity 2. 2020-01-22 15:23:49 -08:00
f66fd1caaa Customize Healthchecks log level via borgmatic "--monitoring-verbosity" flag (#277). 2020-01-22 15:10:47 -08:00
d93fdbc5ad Support "--files" and "--stats" flags at verbosity level 0. 2020-01-22 13:28:24 -08:00
58e0439daf Disable per-file logging by default at verbosity 1; opt-in via new --files option. 2020-01-22 20:36:59 +00:00
palto42
75b5e7254e changes as per comments in PR #283 2020-01-22 19:03:26 +01:00
39550a7fe9 Add ~/.config/borgmatic.d as another configuration directory default (#274). 2020-01-22 09:26:58 -08:00
palto42
5f0c084bee Merge 'upstream/master' into list-files 2020-01-22 18:12:26 +01:00
88f06f7921 Revert "Use absolute paths in systemd commands."
This reverts commit 24e1516ec5.
2020-01-21 16:03:24 -08:00
8d12079386 Bump version. 2020-01-21 10:47:29 -08:00
7824a034ca Add test for database dump directory removal. 2020-01-21 10:34:46 -08:00
8ef0ba2fae
After a backup of a database dump in directory format, properly remove the dump directory. 2020-01-21 10:29:40 -08:00
cc384f4324 Second ticket for --json color bug. 2020-01-21 08:33:41 -08:00
8a91c79fb0 Support directory format dump cleanup.
Previously, only deleting a dump in a single-file format was supported.
This led to errors when performing a PostgreSQL directory format backup.
2020-01-19 15:15:47 +01:00
ac1d63bb0d Use more realistic repository examples in README. 2020-01-18 20:00:18 -08:00
palto42
83632448be updated NEWS for mod. --stats & new --files opt. 2020-01-18 14:57:50 +01:00
palto42
e108526bab disable --stats by default 2020-01-18 14:38:59 +01:00
palto42
e27ba0d08a less detail at v1 + option "--files" for details 2020-01-11 16:38:07 +01:00
5afe0e3d63 Disable colored output when "--json" flag is used, so as to produce valid JSON ouput (#276). 2020-01-04 15:50:41 -08:00
c52f82f9ce Documentation: Enable and start borgmatic with a single systemctl command. 2020-01-04 13:37:56 -08:00
d0c533555e In "borgmatic --help", don't expand $HOME in listing of default "--config" paths. 2020-01-02 10:37:31 -08:00
1995c80e60 Add comment about old versions of systemd and option compatibility (#275). 2020-01-02 10:05:32 -08:00
24e1516ec5 Use absolute paths in systemd commands. 2020-01-01 17:14:55 -08:00
5b1beda82b Add logrotate documentation suggestion. 2019-12-31 15:06:53 -08:00
e4f1094569 Bump version for release. 2019-12-20 14:04:49 -08:00
911668f0c8 Only trigger "on_error" hooks and monitoring failures for "prune", "create", and "check" actions, and not for other actions (#270). 2019-12-20 13:58:02 -08:00
6bfa0783b9 Clarify that the documentation suggestion form is only for documentation. 2019-12-17 20:16:13 -08:00
d64bcd5e83 When pruning with verbosity level 1, list pruned and kept archives. 2019-12-17 20:12:41 -08:00
ed2ca9f476 Sign release files. 2019-12-17 20:06:25 -08:00
f787dfe809 Override particular configuration options from the command-line via "--override" flag (#268). 2019-12-17 11:46:27 -08:00
afaabd14a8 Clarify documentation on how /etc/borgmatic.d/ configuration files are interpreted. 2019-12-13 11:42:17 -08:00
e009bfeaa2 Update Healthchecks/Cronitor/Cronhub monitoring integrations to fire for "check" and "prune" actions, not just "create" (#249). 2019-12-12 22:54:45 -08:00
f1358d52aa Add "borgmatic init" repository probing fix to NEWS. 2019-12-12 21:50:24 -08:00
b04b333466
Use --remote-path, --debug and --info when checking for repo existence. 2019-12-13 05:47:47 +00:00
Matthew Daley
dd16504329 Use --remote-path, --debug and --info when checking for repo existence
These are currently not being used in the call to `borg info` performed
as part of the borgmatic init command to check whether or not the repo
already exists.
2019-12-13 15:45:12 +13:00
c6cb21a748 Switch to read-only container filesystem to avoid *.pyc getting created with busted permissions. 2019-12-11 21:24:37 -08:00
78aa4626fa Remove user switch in container due to CI permission issue. 2019-12-11 16:58:08 -08:00
d2df224da8 Use busybox short option to su. 2019-12-11 16:46:24 -08:00
464ff2fe96 Run end-to-end tests on developer machines with Docker Compose for approximate parity with continuous integration tests. 2019-12-11 16:43:01 -08:00
0cc711173a Merge branch 'master' into end-to-end-database-tests 2019-12-11 12:27:14 -08:00
14e5cfc8f8 Support piping "borgmatic list" output to grep. Retain colored output when piping/redirecting (#271). 2019-12-11 12:12:25 -08:00
b8b888090d Select Postgres service to work with particular client version. 2019-12-10 21:41:15 -08:00
68281339b7 Black. 2019-12-10 16:57:12 -08:00
2e5be3d3f1 Add missing psql. 2019-12-10 16:52:59 -08:00
abd31a94fb Ports fix? 2019-12-10 16:47:09 -08:00
01e2cf08d1 Fix Drone CI services syntax. 2019-12-10 16:43:43 -08:00
9f821862b7 End-to-end tests for database dump and restore. 2019-12-10 16:41:01 -08:00
8660af745e Optionally change the internal database dump path via "borgmatic_source_directory" option in location configuration section (#259). 2019-12-10 16:04:34 -08:00
826e4352d1 Filter listed paths via "borgmatic list --path" flag (#269). 2019-12-08 14:07:02 -08:00
b94999bba4 Fix "borgmatic umount" so it only runs Borg once instead of once per repository / configuration file. 2019-12-07 21:36:51 -08:00
65cc4c9429 Fix "--repository" flag to accept relative paths. 2019-12-06 16:29:41 -08:00
df2be9620b Mount whole repositories via "borgmatic mount" without any "--archive" flag (#253). 2019-12-06 15:58:54 -08:00
2ab9daaa0f Attempt to repair any inconsistencies found during a consistency check via "borgmatic check --repair" flag (#266). 2019-12-04 16:07:00 -08:00
0c6c61a272 Pass extra options directly to particular Borg commands, handy for Borg options that borgmatic does not yet support natively (#235). 2019-12-04 15:48:10 -08:00
00f62ca023 Fix for "before_backup" hook not triggering an error when the command contains "borg" and has an exit code of 1 (#256). 2019-11-30 16:55:05 -08:00
9b2ca15de6 Fix for garbled Borg file listing when using "borgmatic create --progress" with verbosity level 1 or 2 (#257). 2019-11-30 15:31:36 -08:00
c4aa34bf5c Fix for missing Healthchecks monitoring payload or HTTP 500 due to incorrect unicode encoding (#260). 2019-11-30 14:51:32 -08:00
4385f2a36a Merge branch 'master' of github.com:witten/borgmatic 2019-11-25 15:28:21 -08:00
ed6a9dadf8
Fix for database dump removal incorrectly skipping some database dumps. 2019-11-25 23:28:15 +00:00
d978a2d190 Fix for database dump removal incorrectly skipping some database dumps. 2019-11-25 15:27:59 -08:00
375036e409 Support for mounting an archive as a FUSE filesystem via "borgmatic mount" action, and unmounting via "borgmatic umount" (#123). 2019-11-25 14:56:20 -08:00
Raphael Heinrich
99168c1035 Fix error on cleanup multiple database dumps 2019-11-25 22:07:42 +01:00
f4a231420f Show summary log errors regardless of verbosity. Log the "summary:" header with level based on the contained logs. 2019-11-25 10:31:09 -08:00
55ebfdda39 Show full error logs at "--verbosity 0" so you can see command output without upping the verbosity level. 2019-11-19 10:09:25 -08:00
e63e2e0852 Rephrasing verbosity levels. 2019-11-17 22:52:26 -08:00
edc4b9e60e Update the command-line help description. 2019-11-17 22:49:16 -08:00
78ff734e6c Add note about error logs only flowing to Healthchecks for the "create" action. 2019-11-17 19:10:11 -08:00
2cc743cf47 With "borgmatic check", consider Borg warnings as errors (#247). 2019-11-17 19:06:28 -08:00
d99e6d1994 Remove obnoxious log message when Healthchecks hook sends failure for check action. 2019-11-17 18:55:40 -08:00
50f62d73b7 When using the Healthchecks monitoring hook, include borgmatic logs in the payloads for completion and failure pings (#241). 2019-11-17 16:54:27 -08:00
26a89de790 Higher resolution BorgBase logo. 2019-11-14 12:39:33 -08:00
c2276b18c5 Add troubleshooting documentation for MySQL lock table errors (#244). 2019-11-14 10:33:47 -08:00
693434f8aa Icon spacing hack that'll show up on GitHub. 2019-11-14 09:45:38 -08:00
1e8edc05e9 Marketing. 2019-11-14 09:34:53 -08:00
1f166a47e9 Fix failing test due to dictionary order (or the lack thereof..) in Python 3.5. 2019-11-13 16:42:58 -08:00
9ee6151999 Add link to unofficial Fedora package of borgmatic that's more up-to-date. 2019-11-13 14:59:49 -08:00
6cdc92bd0c Fix for "borgmatic restore" showing success and incorrectly extracting archive files, even when no databases are configured to restore (#246). 2019-11-13 10:41:57 -08:00
612e1fea67 Add database version to issue template. 2019-11-13 08:38:58 -08:00
0a9f4e8708 Reopen the file given by "--log-file" flag if an external program rotates the log file while borgmatic is running. 2019-11-12 16:13:25 -08:00
781fac3266 Refactor ping monitors (Healthchecks, Cronitor, Cronhub) to share a common invocation and function signature. 2019-11-12 15:31:07 -08:00
4c38810a32 Add note about rsyslog rate limiting. 2019-11-12 12:32:32 -08:00
bf0d38ff2a Update docs about MySQL/MariaDB database dumps and restores (#228). 2019-11-12 11:59:01 -08:00
04e5b42606 Fix repository does not exist error with "borgmatic extract" when repository is remote (#243). 2019-11-12 11:47:24 -08:00
30525c43bf Another edge case: Don't error on non-matching restore path globs (#228). 2019-11-12 11:24:31 -08:00
ebeb5efe05 More accurately detecting restore of unconfigured database (#228). 2019-11-12 11:10:47 -08:00
a3e939f34b Factor out filtering of database configuration to function with tests (#228). 2019-11-12 10:39:36 -08:00
2a771161e7 Finish test coverage for MySQL restore (#228). 2019-11-12 09:50:26 -08:00
ded042d8cc First crack at MySQL/MariaDB database restore (#228). 2019-11-11 21:59:30 -08:00
4ed43ae4dc Indicate in AUTHORS that it's not an exhaustive list. 2019-11-10 14:50:28 -08:00
9d29ecf304 Remove MySQL/MariaDB database dumps after backing them up (#228). 2019-11-08 11:53:27 -08:00
427b57e2a9 Database dump hooks for MySQL/MariaDB (#228). 2019-11-08 11:17:52 -08:00
e4f0a336c2 Fix installation path in docs. 2019-11-07 11:09:27 -08:00
68459c6795 Add note about setting PATH environment variable when installing borgmatic. 2019-11-07 11:05:41 -08:00
17fda7281a Monitor backups with Cronhub hook integration. Fix Healthchecks/Cronitor hooks to respect dry run. 2019-11-07 10:08:44 -08:00
ac777965d0 Fix regression of generate-borgmatic-config working without --source flag (#239). 2019-11-06 09:52:21 -08:00
31d3bc9bd8 In documentation, clarify when Healthchecks/Cronitor hooks fire in relation to other hooks (#238). 2019-11-06 09:44:46 -08:00
2115eeb6a2 Upgrade your borgmatic configuration to get new options and comments via "generate-borgmatic-config --source" (#239). 2019-11-06 09:31:00 -08:00
08f017bc3e Remove broken Tox Python version filter when running Black (code formatter) environment directly. 2019-11-05 09:36:30 -08:00
7bc9482970 Add verbosity level -1 to NEWS. 2019-11-03 17:03:19 -08:00
57ffad4e04 Verbosity level "-1" for even quieter output: Errors only (#236). 2019-11-04 01:02:13 +00:00
5422d14f93 Add Python 3.8. 2019-11-03 14:12:46 -08:00
e6d8c736d0 Documentation feedback: Don't hard-code Python 3.7 for Black. 2019-11-03 14:08:19 -08:00
palto42
18d3542fbc new verbosity level "-1" for errors 2019-11-03 09:55:19 +01:00
93f453cecf Add Python 3.8 to build matrix. 2019-11-02 16:38:50 -07:00
505bb778fa Fix logging docs typo. 2019-11-02 12:54:03 -07:00
b09d464162 Add missing PR link. 2019-11-02 11:27:05 -07:00
a9104ed090 Handle log file error more consistently with other error. Add --log-file-verbosity flag. Add docs. 2019-11-02 11:23:18 -07:00
06f134cc71 Log to file instead of syslog via command-line "--log-file" flag (#233). 2019-11-02 17:43:39 +00:00
palto42
584359b6c0 .gitignore 2019-11-02 14:39:16 +01:00
palto42
26a1a3d1e0 test cases for logfile option 2019-11-02 14:34:16 +01:00
palto42
6da05cbe2d Exception handling for logfile option 2019-11-02 14:33:57 +01:00
f48f52079d Support for Borg --keep-exclude-tags and --exclude-nodump options (#234). 2019-11-01 15:50:59 -07:00
76c569cf84 Update test requirements. 2019-11-01 12:18:35 -07:00
palto42
b121290c0f Merge remote-tracking branch 'upstream/master' into logging 2019-11-01 19:44:04 +01:00
8fd46b8c70 Monitor backups with Cronitor hook integration. 2019-11-01 11:33:15 -07:00
603f525352 Clarify --archive help. 2019-11-01 10:50:20 -07:00
palto42
8c8640d0ab file-logger replaces syslog 2019-11-01 18:42:24 +01:00
e3dd545345 Extract files to a particular directory via "borgmatic extract --destination" flag. Also rename "--restore-path" to "--path" to reduce confusion. 2019-11-01 10:00:26 -07:00
589fc30fc8 To orient the reader, add "borgmatic" to the top of each documentation page. 2019-10-31 22:04:38 -07:00
bd3c51fc5a Documentation for database restores (#229). 2019-10-31 21:45:47 -07:00
2c46f53ef6 Attempt to upgrade version of pip used in CI. 2019-10-31 20:37:01 -07:00
939f4d4e3d Add additional tests for database restores. 2019-10-31 14:11:19 -07:00
3006db0cae Restore backed up PostgreSQL databases via "borgmatic restore" sub-command (#229). 2019-10-31 12:57:36 -07:00
palto42
22640a9ca0 new option for log-file 2019-10-31 10:44:22 +01:00
ca23c3b8b3 Remove unnecessary word from documentation. 2019-10-30 10:55:40 -07:00
74607fdd43 Documentation on how to develop borgmatic's documentation. 2019-10-30 10:54:42 -07:00
b53684a8f0 Fix incorrect link to hooks documentation. 2019-10-29 09:53:45 -07:00
f055f5dea8 Clarify borgmatic restore example with no leading slash. 2019-10-28 12:00:54 -07:00
4dc4fe0b8d Reordering hooks a bit so that pre-backup ordering mirrors post-backup ordering. 2019-10-27 14:47:55 -07:00
275 changed files with 36508 additions and 5012 deletions

View file

@ -1,57 +1,95 @@
---
kind: pipeline
name: python-3-5-alpine-3-10
name: python-3-8-alpine-3-13
services:
- name: postgresql
image: docker.io/postgres:13.1-alpine
environment:
POSTGRES_PASSWORD: test
POSTGRES_DB: test
- name: postgresql2
image: docker.io/postgres:13.1-alpine
environment:
POSTGRES_PASSWORD: test2
POSTGRES_DB: test
commands:
- docker-entrypoint.sh -p 5433
- name: mariadb
image: docker.io/mariadb:10.11.4
environment:
MARIADB_ROOT_PASSWORD: test
MARIADB_DATABASE: test
- name: mariadb2
image: docker.io/mariadb:10.11.4
environment:
MARIADB_ROOT_PASSWORD: test2
MARIADB_DATABASE: test
commands:
- docker-entrypoint.sh --port=3307
- name: not-actually-mysql
image: docker.io/mariadb:10.11.4
environment:
MARIADB_ROOT_PASSWORD: test
MARIADB_DATABASE: test
- name: not-actually-mysql2
image: docker.io/mariadb:10.11.4
environment:
MARIADB_ROOT_PASSWORD: test2
MARIADB_DATABASE: test
commands:
- docker-entrypoint.sh --port=3307
- name: mongodb
image: docker.io/mongo:5.0.5
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: test
- name: mongodb2
image: docker.io/mongo:5.0.5
environment:
MONGO_INITDB_ROOT_USERNAME: root2
MONGO_INITDB_ROOT_PASSWORD: test2
commands:
- docker-entrypoint.sh --port=27018
clone:
skip_verify: true
steps:
- name: build
image: python:3.5-alpine3.10
image: docker.io/alpine:3.13
environment:
TEST_CONTAINER: true
pull: always
commands:
- scripts/run-tests
---
kind: pipeline
name: python-3-6-alpine-3-10
steps:
- name: build
image: python:3.6-alpine3.10
pull: always
commands:
- scripts/run-tests
---
kind: pipeline
name: python-3-7-alpine-3-10
steps:
- name: build
image: python:3.7-alpine3.10
pull: always
commands:
- scripts/run-tests
---
kind: pipeline
name: python-3-7-alpine-3-7
steps:
- name: build
image: python:3.7-alpine3.7
pull: always
commands:
- scripts/run-tests
- scripts/run-full-tests
---
kind: pipeline
name: documentation
type: exec
platform:
os: linux
arch: amd64
clone:
skip_verify: true
steps:
- name: build
image: plugins/docker
settings:
username:
environment:
USERNAME:
from_secret: docker_username
password:
PASSWORD:
from_secret: docker_password
repo: witten/borgmatic-docs
dockerfile: docs/Dockerfile
when:
branch:
- master
IMAGE_NAME: projects.torsion.org/borgmatic-collective/borgmatic:docs
commands:
- podman login --username "$USERNAME" --password "$PASSWORD" projects.torsion.org
- podman build --tag "$IMAGE_NAME" --file docs/Dockerfile --storage-opt "overlay.mount_program=/usr/bin/fuse-overlayfs" .
- podman push "$IMAGE_NAME"
trigger:
repo:
- borgmatic-collective/borgmatic
branch:
- main

View file

@ -1,9 +1,13 @@
const pluginSyntaxHighlight = require("@11ty/eleventy-plugin-syntaxhighlight");
const codeClipboard = require("eleventy-plugin-code-clipboard");
const inclusiveLangPlugin = require("@11ty/eleventy-plugin-inclusive-language");
const navigationPlugin = require("@11ty/eleventy-navigation");
module.exports = function(eleventyConfig) {
eleventyConfig.addPlugin(pluginSyntaxHighlight);
eleventyConfig.addPlugin(inclusiveLangPlugin);
eleventyConfig.addPlugin(navigationPlugin);
eleventyConfig.addPlugin(codeClipboard);
let markdownIt = require("markdown-it");
let markdownItAnchor = require("markdown-it-anchor");
@ -21,8 +25,7 @@ module.exports = function(eleventyConfig) {
}
};
let markdownItAnchorOptions = {
permalink: true,
permalinkClass: "direct-link"
permalink: markdownItAnchor.permalink.headerLink()
};
eleventyConfig.setLibrary(
@ -30,8 +33,13 @@ module.exports = function(eleventyConfig) {
markdownIt(markdownItOptions)
.use(markdownItAnchor, markdownItAnchorOptions)
.use(markdownItReplaceLink)
.use(codeClipboard.markdownItCopyButton)
);
eleventyConfig.addPassthroughCopy({"docs/static": "static"});
eleventyConfig.setLiquidOptions({dynamicPartials: false});
return {
templateFormats: [
"md",

1
.flake8 Normal file
View file

@ -0,0 +1 @@
select = Q0

View file

@ -1,31 +0,0 @@
#### What I'm trying to do and why
#### Steps to reproduce (if a bug)
Include (sanitized) borgmatic configuration files if applicable.
#### Actual behavior (if a bug)
Include (sanitized) `--verbosity 2` output if applicable.
#### Expected behavior (if a bug)
#### Other notes / implementation ideas
#### Environment
**borgmatic version:** [version here]
Use `sudo borgmatic --version` or `sudo pip show borgmatic | grep ^Version`
**borgmatic installation method:** [e.g., Debian package, Docker container, etc.]
**Borg version:** [version here]
Use `sudo borg --version`
**Python version:** [version here]
Use `python3 --version`
**operating system and version:** [OS here]

View file

@ -0,0 +1,77 @@
name: "Bug or question/support"
about: "For filing a bug or getting support"
body:
- type: textarea
id: problem
attributes:
label: What I'm trying to do and why
validations:
required: true
- type: textarea
id: repro_steps
attributes:
label: Steps to reproduce
description: Include (sanitized) borgmatic configuration files if applicable.
validations:
required: false
- type: textarea
id: actual_behavior
attributes:
label: Actual behavior
description: Include (sanitized) `--verbosity 2` output if applicable.
validations:
required: false
- type: textarea
id: expected_behavior
attributes:
label: Expected behavior
validations:
required: false
- type: textarea
id: notes
attributes:
label: Other notes / implementation ideas
validations:
required: false
- type: input
id: borgmatic_version
attributes:
label: borgmatic version
description: Use `sudo borgmatic --version` or `sudo pip show borgmatic | grep ^Version`
validations:
required: false
- type: input
id: borgmatic_install_method
attributes:
label: borgmatic installation method
description: e.g., pip install, Debian package, container, etc.
validations:
required: false
- type: input
id: borg_version
attributes:
label: Borg version
description: Use `sudo borg --version`
validations:
required: false
- type: input
id: python_version
attributes:
label: Python version
description: Use `python3 --version`
validations:
required: false
- type: input
id: database_version
attributes:
label: Database version (if applicable)
description: Use `psql --version` / `mysql --version` / `mongodump --version` / `sqlite3 --version`
validations:
required: false
- type: input
id: operating_system_version
attributes:
label: Operating system and version
description: On Linux, use `cat /etc/os-release`
validations:
required: false

View file

@ -0,0 +1 @@
blank_issues_enabled: true

View file

@ -0,0 +1,15 @@
name: "Feature"
about: "For filing a feature request or idea"
body:
- type: textarea
id: request
attributes:
label: What I'd like to do and why
validations:
required: true
- type: textarea
id: notes
attributes:
label: Other notes / implementation ideas
validations:
required: false

2
.gitignore vendored
View file

@ -2,7 +2,7 @@
*.pyc
*.swp
.cache
.coverage
.coverage*
.pytest_cache
.tox
__pycache__

View file

@ -10,3 +10,5 @@ newtonne: Read encryption password from external file
Robin `ypid` Schneider: Support additional options of Borg and add validate-borgmatic-config command
Scott Squires: Custom archive names
Thomas LÉVEIL: Support for a keep_minutely prune option. Support for the --json option
And many others! See the output of "git log".

783
NEWS
View file

@ -1,3 +1,782 @@
1.8.5
* #701: Add a "skip_actions" option to skip running particular actions, handy for append-only or
checkless configurations. See the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/set-up-backups/#skipping-actions
* #701: Deprecate the "disabled" value for the "checks" option in favor of the new "skip_actions"
option.
* #745: Constants now apply to included configuration, not just the file doing the includes. As a
side effect of this change, constants no longer apply to option names and only substitute into
configuration values.
* #779: Add a "--match-archives" flag to the "check" action for selecting the archives to check,
overriding the existing "archive_name_format" and "match_archives" options in configuration.
* #779: Only parse "--override" values as complex data types when they're for options of those
types.
* #782: Fix environment variable interpolation within configured repository paths.
* #782: Add configuration constant overriding via the existing "--override" flag.
* #783: Upgrade ruamel.yaml dependency to support version 0.18.x.
* #784: Drop support for Python 3.7, which has been end-of-lifed.
1.8.4
* #715: Add a monitoring hook for sending backup status to a variety of monitoring services via the
Apprise library. See the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#apprise-hook
* #748: When an archive filter causes no matching archives for the "rlist" or "info"
actions, warn the user and suggest how to remove the filter.
* #768: Fix a traceback when an invalid command-line flag or action is used.
* #771: Fix normalization of deprecated sections ("location:", "storage:", "hooks:", etc.) to
support empty sections without erroring.
* #774: Disallow the "--dry-run" flag with the "borg" action, as borgmatic can't guarantee the Borg
command won't have side effects.
1.8.3
* #665: BREAKING: Simplify logging logic as follows: Syslog verbosity is now disabled by
default, but setting the "--syslog-verbosity" flag enables it regardless of whether you're at an
interactive console. Additionally, "--log-file-verbosity" and "--monitoring-verbosity" now
default to 1 (info about steps borgmatic is taking) instead of 0. And both syslog logging and
file logging can be enabled simultaneously.
* #743: Add a monitoring hook for sending backup status and logs to Grafana Loki. See the
documentation for more information:
https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#loki-hook
* #753: When "archive_name_format" is not set, filter archives using the default archive name
format.
* #754: Fix error handling to log command output as one record per line instead of truncating
too-long output and swallowing the end of some Borg error messages.
* #757: Update documentation so "sudo borgmatic" works for pipx borgmatic installations.
* #761: Fix for borgmatic not stopping Borg immediately when the user presses ctrl-C.
* Update documentation to recommend installing/upgrading borgmatic with pipx instead of pip. See the
documentation for more information:
https://torsion.org/borgmatic/docs/how-to/set-up-backups/#installation
https://torsion.org/borgmatic/docs/how-to/upgrade/#upgrading-borgmatic
1.8.2
* #345: Add "key export" action to export a copy of the repository key for safekeeping in case
the original goes missing or gets damaged.
* #727: Add a MariaDB database hook that uses native MariaDB commands instead of the deprecated
MySQL ones. Be aware though that any existing backups made with the "mysql_databases:" hook are
only restorable with a "mysql_databases:" configuration.
* #738: Fix for potential data loss (data not getting restored) in which the database "restore"
action didn't actually restore anything and indicated success anyway.
* Remove the deprecated use of the MongoDB hook's "--db" flag for database restoration.
* Add source code reference documentation for getting oriented with the borgmatic code as a
developer: https://torsion.org/borgmatic/docs/reference/source-code/
1.8.1
* #326: Add documentation for restoring a database to an alternate host:
https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#restore-to-an-alternate-host
* #697: Add documentation for "bootstrap" action:
https://torsion.org/borgmatic/docs/how-to/extract-a-backup/#extract-the-configuration-files-used-to-create-an-archive
* #725: Add "store_config_files" option for disabling the automatic backup of configuration files
used by the "config bootstrap" action.
* #728: Fix for "prune" action error when using the "keep_exclude_tags" option.
* #730: Fix for Borg's interactive prompt on the "check --repair" action automatically getting
answered "NO" even when the "check_i_know_what_i_am_doing" option isn't set.
* #732: Include multiple configuration files with a single "!include". See the documentation for
more information:
https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#multiple-merge-includes
* #734: Omit "--glob-archives" or "--match-archives" Borg flag when its value would be "*" (meaning
all archives).
1.8.0
* #575: BREAKING: For the "borgmatic borg" action, instead of implicitly injecting
repository/archive into the resulting Borg command-line, pass repository to Borg via an
environment variable and make archive available for explicit use in your commands. See the
documentation for more information:
https://torsion.org/borgmatic/docs/how-to/run-arbitrary-borg-commands/
* #719: Fix an error when running "borg key export" through borgmatic.
* #720: Fix an error when dumping a database and the "exclude_nodump" option is set.
* #724: Add "check_i_know_what_i_am_doing" option to bypass Borg confirmation prompt when running
"check --repair".
* When merging two configuration files, error gracefully if the two files do not adhere to the same
format.
* #721: Remove configuration sections ("location:", "storage:", "hooks:", etc.), while still
keeping deprecated support for them. Now, all options are at the same level, and you don't need
to worry about commenting/uncommenting section headers when you change an option (if you remove
your sections first).
* #721: BREAKING: The retention prefix and the consistency prefix can no longer have different
values (unless one is not set).
* #721: BREAKING: The storage umask and the hooks umask can no longer have different values (unless
one is not set).
* BREAKING: Flags like "--config" that previously took multiple values now need to be given once
per value, e.g. "--config first.yaml --config second.yaml" instead of "--config first.yaml
second.yaml". This prevents argument parsing errors on ambiguous commands.
* BREAKING: Remove the deprecated (and silently ignored) "--successful" flag on the "list" action,
as newer versions of Borg list successful (non-checkpoint) archives by default.
* All deprecated configuration option values now generate warning logs.
* Remove the deprecated (and non-functional) "--excludes" flag in favor of excludes within
configuration.
* Fix an error when logging too-long command output during error handling. Now, long command output
is truncated before logging.
1.7.15
* #326: Add configuration options and command-line flags for backing up a database from one
location while restoring it somewhere else.
* #399: Add a documentation troubleshooting note for MySQL/MariaDB authentication errors.
* #529: Remove upgrade-borgmatic-config command for upgrading borgmatic 1.1.0 INI-style
configuration.
* #529: Deprecate generate-borgmatic-config in favor of new "config generate" action.
* #529: Deprecate validate-borgmatic-config in favor of new "config validate" action.
* #697, #712, #716: Extract borgmatic configuration from backup via new "config bootstrap"
action—even when borgmatic has no configuration yet!
* #669: Add sample systemd user service for running borgmatic as a non-root user.
* #711, #713: Fix an error when "data" check time files are accessed without getting upgraded
first.
1.7.14
* #484: Add a new verbosity level (-2) to disable output entirely (for console, syslog, log file,
or monitoring), so not even errors are shown.
* #688: Tweak archive check probing logic to use the newest timestamp found when multiple exist.
* #659: Add Borg 2 date-based matching flags to various actions for archive selection.
* #703: Fix an error when loading the configuration schema on Fedora Linux.
* #704: Fix "check" action error when repository and archive checks are configured but the archive
check gets skipped due to the configured frequency.
* #706: Fix "--archive latest" on "list" and "info" actions that only worked on the first of
multiple configured repositories.
1.7.13
* #375: Restore particular PostgreSQL schemas from a database dump via "borgmatic restore --schema"
flag. See the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#restore-particular-schemas
* #678: Fix error from PostgreSQL when dumping a database with a "format" of "plain".
* #678: Fix PostgreSQL hook to support "psql_command" and "pg_restore_command" options containing
commands with arguments.
* #678: Fix calls to psql in PostgreSQL hook to ignore "~/.psqlrc", whose settings can break
database dumping.
* #680: Add support for logging each log line as a JSON object via global "--log-json" flag.
* #682: Fix "source_directories_must_exist" option to expand globs and tildes in source directories.
* #684: Rename "master" development branch to "main" to use more inclusive language. You'll need to
update your development checkouts accordingly.
* #686: Add fish shell completion script so you can tab-complete on the borgmatic command-line. See
the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/set-up-backups/#shell-completion
* #687: Fix borgmatic error when not finding the configuration schema for certain "pip install
--editable" development installs.
* #688: Fix archive checks being skipped even when particular archives haven't been checked
recently. This occurred when using multiple borgmatic configuration files with different
"archive_name_format"s, for instance.
* #691: Fix error in "borgmatic restore" action when the configured repository path is relative
instead of absolute.
* #694: Run "borgmatic borg" action without capturing output so interactive prompts and flags like
"--progress" still work.
1.7.12
* #413: Add "log_file" context to command hooks so your scripts can consume the borgmatic log file.
See the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/
* #666, #670: Fix error when running the "info" action with the "--match-archives" or "--archive"
flags. Also fix the "--match-archives"/"--archive" flags to correctly override the
"match_archives" configuration option for the "transfer", "list", "rlist", and "info" actions.
* #668: Fix error when running the "prune" action with both "archive_name_format" and "prefix"
options set.
* #672: Selectively shallow merge certain mappings or sequences when including configuration files.
See the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#shallow-merge
* #672: Selectively omit list values when including configuration files. See the documentation for
more information:
https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#list-merge
* #673: View the results of configuration file merging via "validate-borgmatic-config --show" flag.
See the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#debugging-includes
* Add optional support for running end-to-end tests and building documentation with rootless Podman
instead of Docker.
1.7.11
* #479, #588: BREAKING: Automatically use the "archive_name_format" option to filter which archives
get used for borgmatic actions that operate on multiple archives. Override this behavior with the
new "match_archives" option in the storage section. This change is "breaking" in that it silently
changes which archives get considered for "rlist", "prune", "check", etc. See the documentation
for more information:
https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#archive-naming
* #479, #588: The "prefix" options have been deprecated in favor of the new "archive_name_format"
auto-matching behavior and the "match_archives" option.
* #658: Add "--log-file-format" flag for customizing the log message format. See the documentation
for more information:
https://torsion.org/borgmatic/docs/how-to/inspect-your-backups/#logging-to-file
* #662: Fix regression in which the "check_repositories" option failed to match repositories.
* #663: Fix regression in which the "transfer" action produced a traceback.
* Add spellchecking of source code during test runs.
1.7.10
* #396: When a database command errors, display and log the error message instead of swallowing it.
* #501: Optionally error if a source directory does not exist via "source_directories_must_exist"
option in borgmatic's location configuration.
* #576: Add support for "file://" paths within "repositories" option.
* #612: Define and use custom constants in borgmatic configuration files. See the documentation for
more information:
https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#constant-interpolation
* #618: Add support for BORG_FILES_CACHE_TTL environment variable via "borg_files_cache_ttl" option
in borgmatic's storage configuration.
* #623: Fix confusing message when an error occurs running actions for a configuration file.
* #635: Add optional repository labels so you can select a repository via "--repository yourlabel"
at the command-line. See the configuration reference for more information:
https://torsion.org/borgmatic/docs/reference/configuration/
* #649: Add documentation on backing up a database running in a container:
https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#containers
* #655: Fix error when databases are configured and a source directory doesn't exist.
* Add code style plugins to enforce use of Python f-strings and prevent single-letter variables.
To join in the pedantry, refresh your test environment with "tox --recreate".
* Rename scripts/run-full-dev-tests to scripts/run-end-to-end-dev-tests and make it run end-to-end
tests only. Continue using tox to run unit and integration tests.
1.7.9
* #295: Add a SQLite database dump/restore hook.
* #304: Change the default action order when no actions are specified on the command-line to:
"create", "prune", "compact", "check". If you'd like to retain the old ordering ("prune" and
"compact" first), then specify actions explicitly on the command-line.
* #304: Run any command-line actions in the order specified instead of using a fixed ordering.
* #564: Add "--repository" flag to all actions where it makes sense, so you can run borgmatic on
a single configured repository instead of all of them.
* #628: Add a Healthchecks "log" state to send borgmatic logs to Healthchecks without signalling
success or failure.
* #647: Add "--strip-components all" feature on the "extract" action to remove leading path
components of files you extract. Must be used with the "--path" flag.
* Add support for Python 3.11.
1.7.8
* #620: With the "create" action and the "--list" ("--files") flag, only show excluded files at
verbosity 2.
* #621: Add optional authentication to the ntfy monitoring hook.
* With the "create" action, only one of "--list" ("--files") and "--progress" flags can be used.
This lines up with the new behavior in Borg 2.0.0b5.
* Internally support new Borg 2.0.0b5 "--filter" status characters / item flags for the "create"
action.
* Fix the "create" action with the "--dry-run" flag querying for databases when a PostgreSQL/MySQL
"all" database is configured. Now, these queries are skipped due to the dry run.
* Add "--repository" flag to the "rcreate" action to optionally select one configured repository to
create.
* Add "--progress" flag to the "transfer" action, new in Borg 2.0.0b5.
* Add "checkpoint_volume" configuration option to creates checkpoints every specified number of
bytes during a long-running backup, new in Borg 2.0.0b5.
1.7.7
* #642: Add MySQL database hook "add_drop_database" configuration option to control whether dumped
MySQL databases get dropped right before restore.
* #643: Fix for potential data loss (data not getting backed up) when dumping large "directory"
format PostgreSQL/MongoDB databases. Prior to the fix, these dumps would not finish writing to
disk before Borg consumed them. Now, the dumping process completes before Borg starts. This only
applies to "directory" format databases; other formats still stream to Borg without using
temporary disk space.
* Fix MongoDB "directory" format to work with mongodump/mongorestore without error. Prior to this
fix, only the "archive" format worked.
1.7.6
* #393, #438, #560: Optionally dump "all" PostgreSQL/MySQL databases to separate files instead of
one combined dump file, allowing more convenient restores of individual databases. You can enable
this by specifying the database dump "format" option when the database is named "all".
* #602: Fix logs that interfere with JSON output by making warnings go to stderr instead of stdout.
* #622: Fix traceback when include merging configuration files on ARM64.
* #629: Skip warning about excluded special files when no special files have been excluded.
* #630: Add configuration options for database command customization: "list_options",
"restore_options", and "analyze_options" for PostgreSQL, "restore_options" for MySQL, and
"restore_options" for MongoDB.
1.7.5
* #311: Override PostgreSQL dump/restore commands via configuration options.
* #604: Fix traceback when a configuration section is present but lacking any options.
* #607: Clarify documentation examples for include merging and deep merging.
* #611: Fix "data" consistency check to support "check_last" and consistency "prefix" options.
* #613: Clarify documentation about multiple repositories and separate configuration files.
1.7.4
* #596: Fix special file detection erroring when broken symlinks are encountered.
* #597, #598: Fix regression in which "check" action errored on certain systems ("Cannot determine
Borg repository ID").
1.7.3
* #357: Add "break-lock" action for removing any repository and cache locks leftover from Borg
aborting.
* #360: To prevent Borg hangs, unconditionally delete stale named pipes before dumping databases.
* #587: When database hooks are enabled, auto-exclude special files from a "create" action to
prevent Borg from hanging. You can override/prevent this behavior by explicitly setting the
"read_special" option to true.
* #587: Warn when ignoring a configured "read_special" value of false, as true is needed when
database hooks are enabled.
* #589: Update sample systemd service file to allow system "idle" (e.g. a video monitor turning
off) while borgmatic is running.
* #590: Fix for potential data loss (data not getting backed up) when the "patterns_from" option
was used with "source_directories" (or the "~/.borgmatic" path existed, which got injected into
"source_directories" implicitly). The fix is for borgmatic to convert "source_directories" into
patterns whenever "patterns_from" is used, working around a Borg bug:
https://github.com/borgbackup/borg/issues/6994
* #590: In "borgmatic create --list" output, display which files get excluded from the backup due
to patterns or excludes.
* #591: Add support for Borg 2's "--match-archives" flag. This replaces "--glob-archives", which
borgmatic now treats as an alias for "--match-archives". But note that the two flags have
slightly different syntax. See the Borg 2 changelog for more information:
https://borgbackup.readthedocs.io/en/2.0.0b3/changes.html#version-2-0-0b3-2022-10-02
* Fix for "borgmatic --archive latest" not finding the latest archive when a verbosity is set.
1.7.2
* #577: Fix regression in which "borgmatic info --archive ..." showed repository info instead of
archive info with Borg 1.
* #582: Fix hang when database hooks are enabled and "patterns" contains a parent directory of
"~/.borgmatic".
1.7.1
* #542: Make the "source_directories" option optional. This is useful for "check"-only setups or
using "patterns" exclusively.
* #574: Fix for potential data loss (data not getting backed up) when the "patterns" option was
used with "source_directories" (or the "~/.borgmatic" path existed, which got injected into
"source_directories" implicitly). The fix is for borgmatic to convert "source_directories" into
patterns whenever "patterns" is used, working around a Borg bug:
https://github.com/borgbackup/borg/issues/6994
1.7.0
* #463: Add "before_actions" and "after_actions" command hooks that run before/after all the
actions for each repository. These new hooks are a good place to run per-repository steps like
mounting/unmounting a remote filesystem.
* #463: Update documentation to cover per-repository configurations:
https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/
* #557: Support for Borg 2 while still working with Borg 1. This includes new borgmatic actions
like "rcreate" (replaces "init"), "rlist" (list archives in repository), "rinfo" (show repository
info), and "transfer" (for upgrading Borg repositories). For the most part, borgmatic tries to
smooth over differences between Borg 1 and 2 to make your upgrade process easier. However, there
are still a few cases where Borg made breaking changes. See the Borg 2.0 changelog for more
information: https://www.borgbackup.org/releases/borg-2.0.html
* #557: If you install Borg 2, you'll need to manually upgrade your existing Borg 1 repositories
before use. Note that Borg 2 stable is not yet released as of this borgmatic release, so don't
use Borg 2 for production until it is! See the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/upgrade/#upgrading-borg
* #557: Rename several configuration options to match Borg 2: "remote_rate_limit" is now
"upload_rate_limit", "numeric_owner" is "numeric_ids", and "bsd_flags" is "flags". borgmatic
still works with the old options.
* #557: Remote repository paths without the "ssh://" syntax are deprecated but still supported for
now. Remote repository paths containing "~" are deprecated in borgmatic and no longer work in
Borg 2.
* #557: Omitting the "--archive" flag on the "list" action is deprecated when using Borg 2. Use
the new "rlist" action instead.
* #557: The "--dry-run" flag can now be used with the "rcreate"/"init" action.
* #565: Fix handling of "repository" and "data" consistency checks to prevent invalid Borg flags.
* #566: Modify "mount" and "extract" actions to require the "--repository" flag when multiple
repositories are configured.
* #571: BREAKING: Remove old-style command-line action flags like "--create, "--list", etc. If
you're already using actions like "create" and "list" instead, this change should not affect you.
* #571: BREAKING: Rename "--files" flag on "prune" action to "--list", as it lists archives, not
files.
* #571: Add "--list" as alias for "--files" flag on "create" and "export-tar" actions.
* Add support for disabling TLS verification in Healthchecks monitoring hook with "verify_tls"
option.
1.6.6
* #559: Update documentation about configuring multiple consistency checks or multiple databases.
* #560: Fix all database hooks to error when the requested database to restore isn't present in the
Borg archive.
* #561: Fix command-line "--override" flag to continue supporting old configuration file formats.
* #563: Fix traceback with "create" action and "--json" flag when a database hook is configured.
1.6.5
* #553: Fix logging to include the full traceback when Borg experiences an internal error, not just
the first few lines.
* #554: Fix all monitoring hooks to warn if the server returns an HTTP 4xx error. This can happen
with Healthchecks, for instance, when using an invalid ping URL.
* #555: Fix environment variable plumbing so options like "encryption_passphrase" and
"encryption_passcommand" in one configuration file aren't used for other configuration files.
1.6.4
* #546, #382: Keep your repository passphrases and database passwords outside of borgmatic's
configuration file with environment variable interpolation. See the documentation for more
information: https://torsion.org/borgmatic/docs/how-to/provide-your-passwords/
1.6.3
* #541: Add "borgmatic list --find" flag for searching for files across multiple archives, useful
for hunting down that file you accidentally deleted so you can extract it. See the documentation
for more information:
https://torsion.org/borgmatic/docs/how-to/inspect-your-backups/#searching-for-a-file
* #543: Add a monitoring hook for sending push notifications via ntfy. See the documentation for
more information: https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#ntfy-hook
* Fix Bash completion script to no longer alter your shell's settings (complain about unset
variables or error on pipe failures).
* Deprecate "borgmatic list --successful" flag, as listing only non-checkpoint (successful)
archives is now the default in newer versions of Borg.
1.6.2
* #523: Reduce the default consistency check frequency and support configuring the frequency
independently for each check. Also add "borgmatic check --force" flag to ignore configured
frequencies. See the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/deal-with-very-large-backups/#check-frequency
* #536: Fix generate-borgmatic-config to support more complex schema changes like the new
Healthchecks configuration options when the "--source" flag is used.
* #538: Add support for "borgmatic borg debug" command.
* #539: Add "generate-borgmatic-config --overwrite" flag to replace an existing destination file.
* Add Bash completion script so you can tab-complete the borgmatic command-line. See the
documentation for more information:
https://torsion.org/borgmatic/docs/how-to/set-up-backups/#shell-completion
1.6.1
* #294: Add Healthchecks monitoring hook "ping_body_limit" option to configure how many bytes of
logs to send to the Healthchecks server.
* #402: Remove the error when "archive_name_format" is specified but a retention prefix isn't.
* #420: Warn when an unsupported variable is used in a hook command.
* #439: Change connection failures for monitoring hooks (Healthchecks, Cronitor, PagerDuty, and
Cronhub) to be warnings instead of errors. This way, the monitoring system failing does not block
backups.
* #460: Add Healthchecks monitoring hook "send_logs" option to enable/disable sending borgmatic
logs to the Healthchecks server.
* #525: Add Healthchecks monitoring hook "states" option to only enable pinging for particular
monitoring states (start, finish, fail).
* #528: Improve the error message when a configuration override contains an invalid value.
* #531: BREAKING: When deep merging common configuration, merge colliding list values by appending
them. Previously, one list replaced the other.
* #532: When a configuration include is a relative path, load it from either the current working
directory or from the directory containing the file doing the including. Previously, only the
working directory was used.
* Add a randomized delay to the sample systemd timer to spread out the load on a server.
* Change the configuration format for borgmatic monitoring hooks (Healthchecks, Cronitor,
PagerDuty, and Cronhub) to specify the ping URL / integration key as a named option. The intent
is to support additional options (some in this release). This change is backwards-compatible.
* Add emojis to documentation table of contents to make it easier to find particular how-to and
reference guides at a glance.
1.6.0
* #381: BREAKING: Greatly simplify configuration file reuse by deep merging when including common
configuration. See the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#include-merging
* #473: BREAKING: Instead of executing "before" command hooks before all borgmatic actions run (and
"after" hooks after), execute these hooks right before/after the corresponding action. E.g.,
"before_check" now runs immediately before the "check" action. This better supports running
timing-sensitive tasks like pausing containers. Side effect: before/after command hooks now run
once for each configured repository instead of once per configuration file. Additionally, the
"repositories" interpolated variable has been changed to "repository", containing the path to the
current repository for the hook. See the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/
* #513: Add mention of sudo's "secure_path" option to borgmatic installation documentation.
* #515: Fix "borgmatic borg key ..." to pass parameters to Borg in the correct order.
* #516: Fix handling of TERM signal to exit borgmatic, not just forward the signal to Borg.
* #517: Fix borgmatic exit code (so it's zero) when initial Borg calls fail but later retries
succeed.
* Change Healthchecks logs truncation size from 10k bytes to 100k bytes, corresponding to that
same change on Healthchecks.io.
1.5.24
* #431: Add "working_directory" option to support source directories with relative paths.
* #444: When loading a configuration file that is unreadable due to file permissions, warn instead
of erroring. This supports running borgmatic as a non-root user with configuration in ~/.config
even if there is an unreadable global configuration file in /etc.
* #469: Add "repositories" context to "before_*" and "after_*" command action hooks. See the
documentation for more information:
https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/
* #486: Fix handling of "patterns_from" and "exclude_from" options to error instead of warning when
referencing unreadable files and "create" action is run.
* #507: Fix Borg usage error in the "compact" action when running "borgmatic --dry-run". Now, skip
"compact" entirely during a dry run.
1.5.23
* #394: Compact repository segments and free space with new "borgmatic compact" action. Borg 1.2+
only. Also run "compact" by default when no actions are specified, as "prune" in Borg 1.2 no
longer frees up space unless "compact" is run.
* #394: When using the "atime", "bsd_flags", "numeric_owner", or "remote_rate_limit" options,
tailor the flags passed to Borg depending on the Borg version.
* #480, #482: Fix traceback when a YAML validation error occurs.
1.5.22
* #288: Add database dump hook for MongoDB.
* #470: Move mysqldump options to the beginning of the command due to MySQL bug 30994.
* #471: When command-line configuration override produces a parse error, error cleanly instead of
tracebacking.
* #476: Fix unicode error when restoring particular MySQL databases.
* Drop support for Python 3.6, which has been end-of-lifed.
* Add support for Python 3.10.
1.5.21
* #28: Optionally retry failing backups via "retries" and "retry_wait" configuration options.
* #306: Add "list_options" MySQL configuration option for passing additional arguments to MySQL
list command.
* #459: Add support for old version (2.x) of jsonschema library.
1.5.20
* Re-release with correct version without dev0 tag.
1.5.19
* #387: Fix error when configured source directories are not present on the filesystem at the time
of backup. Now, Borg will complain, but the backup will still continue.
* #455: Mention changing borgmatic path in cron documentation.
* Update sample systemd service file with more granular read-only filesystem settings.
* Move Gitea and GitHub hosting from a personal namespace to an organization for better
collaboration with related projects.
* 1k ★s on GitHub!
1.5.18
* #389: Fix "message too long" error when logging to rsyslog.
* #440: Fix traceback that can occur when dumping a database.
1.5.17
* #437: Fix error when configuration file contains "umask" option.
* Remove test dependency on vim and /dev/urandom.
1.5.16
* #379: Suppress console output in sample crontab and systemd service files.
* #407: Fix syslog logging on FreeBSD.
* #430: Fix hang when restoring a PostgreSQL "tar" format database dump.
* Better error messages! Switch the library used for validating configuration files (from pykwalify
to jsonschema).
* Link borgmatic Ansible role from installation documentation:
https://torsion.org/borgmatic/docs/how-to/set-up-backups/#other-ways-to-install
1.5.15
* #419: Document use case of running backups conditionally based on laptop power level:
https://torsion.org/borgmatic/docs/how-to/backup-to-a-removable-drive-or-an-intermittent-server/
* #425: Run arbitrary Borg commands with new "borgmatic borg" action. See the documentation for
more information: https://torsion.org/borgmatic/docs/how-to/run-arbitrary-borg-commands/
1.5.14
* #390: Add link to Hetzner storage offering from the documentation.
* #398: Clarify canonical home of borgmatic in documentation.
* #406: Clarify that spaces in path names should not be backslashed in path names.
* #423: Fix error handling to error loudly when Borg gets killed due to running out of memory!
* Fix build so as not to attempt to build and push documentation for a non-main branch.
* "Fix" build failure with Alpine Edge by switching from Edge to Alpine 3.13.
* Move #borgmatic IRC channel from Freenode to Libera Chat due to Freenode takeover drama.
IRC connection info: https://torsion.org/borgmatic/#issues
1.5.13
* #373: Document that passphrase is used for Borg keyfile encryption, not just repokey encryption.
* #404: Add support for ruamel.yaml 0.17.x YAML parsing library.
* Update systemd service example to return a permission error when a system call isn't permitted
(instead of terminating borgmatic outright).
* Drop support for Python 3.5, which has been end-of-lifed.
* Add support for Python 3.9.
* Update versions of test dependencies (test_requirements.txt and test containers).
* Only support black code formatter on Python 3.8+. New black dependencies make installation
difficult on older versions of Python.
* Replace "improve this documentation" form with link to support and ticket tracker.
1.5.12
* Fix for previous release with incorrect version suffix in setup.py. No other changes.
1.5.11
* #341: Add "temporary_directory" option for changing Borg's temporary directory.
* #352: Lock down systemd security settings in sample systemd service file.
* #355: Fix traceback when a database hook value is null in a configuration file.
* #361: Merge override values when specifying the "--override" flag multiple times. The previous
behavior was to take the value of the last "--override" flag only.
* #367: Fix traceback when upgrading old INI-style configuration with upgrade-borgmatic-config.
* #368: Fix signal forwarding from borgmatic to Borg resulting in recursion traceback.
* #369: Document support for Borg placeholders in repository names.
1.5.10
* #347: Add hooks that run for the "extract" action: "before_extract" and "after_extract".
* #350: Fix traceback when a configuration directory is non-readable due to directory permissions.
* Add documentation navigation links on left side of all documentation pages.
* Clarify documentation on configuration overrides, specifically the portion about list syntax:
http://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#configuration-overrides
* Clarify documentation overview of monitoring options:
http://torsion.org/borgmatic/docs/how-to/monitor-your-backups/
1.5.9
* #300: Add "borgmatic export-tar" action to export an archive to a tar-formatted file or stream.
* #339: Fix for intermittent timing-related test failure of logging function.
* Clarify database documentation about excluding named pipes and character/block devices to prevent
hangs.
* Add documentation on how to make backups redundant with multiple repositories:
https://torsion.org/borgmatic/docs/how-to/make-backups-redundant/
1.5.8
* #336: Fix for traceback when running Cronitor, Cronhub, and PagerDuty monitor hooks.
1.5.7
* #327: Fix broken pass-through of BORG_* environment variables to Borg.
* #328: Fix duplicate logging to Healthchecks and send "after_*" hooks output to Healthchecks.
* #331: Add SSL support to PostgreSQL database configuration.
* #333: Fix for potential data loss (data not getting backed up) when borgmatic omitted configured
source directories in certain situations. Specifically, this occurred when two source directories
on different filesystems were related by parentage (e.g. "/foo" and "/foo/bar/baz") and the
one_file_system option was enabled.
* Update documentation code fragments theme to better match the rest of the page.
* Improve configuration reference documentation readability via more aggressive word-wrapping in
configuration schema descriptions.
1.5.6
* #292: Allow before_backup and similar hooks to exit with a soft failure without altering the
monitoring status on Healthchecks or other providers. Support this by waiting to ping monitoring
services with a "start" status until after before_* hooks finish. Failures in before_* hooks
still trigger a monitoring "fail" status.
* #316: Fix hang when a stale database dump named pipe from an aborted borgmatic run remains on
disk.
* #323: Fix for certain configuration options like ssh_command impacting Borg invocations for
separate configuration files.
* #324: Add "borgmatic extract --strip-components" flag to remove leading path components when
extracting an archive.
* Tweak comment indentation in generated configuration file for clarity.
* Link to Borgmacator GNOME AppIndicator from monitoring documentation.
1.5.5
* #314: Fix regression in support for PostgreSQL's "directory" dump format. Unlike other dump
formats, the "directory" dump format does not stream directly to/from Borg.
* #315: Fix enabled database hooks to implicitly set one_file_system configuration option to true.
This prevents Borg from reading devices like /dev/zero and hanging.
* #316: Fix hang when streaming a database dump to Borg with implicit duplicate source directories
by deduplicating them first.
* #319: Fix error message when there are no MySQL databases to dump for "all" databases.
* Improve documentation around the installation process. Specifically, making borgmatic commands
runnable via the system PATH and offering a global install option.
1.5.4
* #310: Fix legitimate database dump command errors (exit code 1) not being treated as errors by
borgmatic.
* For database dumps, replace the named pipe on every borgmatic run. This prevent hangs on stale
pipes left over from previous runs.
* Fix error handling to handle more edge cases when executing commands.
1.5.3
* #258: Stream database dumps and restores directly to/from Borg without using any additional
filesystem space. This feature is automatic, and works even on restores from archives made with
previous versions of borgmatic.
* #293: Documentation on macOS launchd permissions issues with work-around for Full Disk Access.
* Remove "borgmatic restore --progress" flag, as it now conflicts with streaming database restores.
1.5.2
* #301: Fix MySQL restore error on "all" database dump by excluding system tables.
* Fix PostgreSQL restore error on "all" database dump by using "psql" for the restore instead of
"pg_restore".
1.5.1
* #289: Tired of looking up the latest successful archive name in order to pass it to borgmatic
actions? Me too. Now you can specify "--archive latest" to all actions that accept an archive
flag.
* #290: Fix the "--stats" and "--files" flags so that they yield output at verbosity 0.
* Reduce the default verbosity of borgmatic logs sent to Healthchecks monitoring hook. Now, it's
warnings and errors only. You can increase the verbosity via the "--monitoring-verbosity" flag.
* Add security policy documentation in SECURITY.md.
1.5.0
* #245: Monitor backups with PagerDuty hook integration. See the documentation for more
information: https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#pagerduty-hook
* #255: Add per-action hooks: "before_prune", "after_prune", "before_check", and "after_check".
* #274: Add ~/.config/borgmatic.d as another configuration directory default.
* #277: Customize Healthchecks log level via borgmatic "--monitoring-verbosity" flag.
* #280: Change "exclude_if_present" option to support multiple filenames that indicate a directory
should be excluded from backups, rather than just a single filename.
* #284: Backup to a removable drive or intermittent server via "soft failure" feature. See the
documentation for more information:
https://torsion.org/borgmatic/docs/how-to/backup-to-a-removable-drive-or-an-intermittent-server/
* #287: View consistency check progress via "--progress" flag for "check" action.
* For "create" and "prune" actions, no longer list files or show detailed stats at any verbosities
by default. You can opt back in with "--files" or "--stats" flags.
* For "list" and "info" actions, show repository names even at verbosity 0.
1.4.22
* #276, #285: Disable colored output when "--json" flag is used, so as to produce valid JSON output.
* After a backup of a database dump in directory format, properly remove the dump directory.
* In "borgmatic --help", don't expand $HOME in listing of default "--config" paths.
1.4.21
* #268: Override particular configuration options from the command-line via "--override" flag. See
the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#configuration-overrides
* #270: Only trigger "on_error" hooks and monitoring failures for "prune", "create", and "check"
actions, and not for other actions.
* When pruning with verbosity level 1, list pruned and kept archives. Previously, this information
was only shown at verbosity level 2.
1.4.20
* Fix repository probing during "borgmatic init" to respect verbosity flag and remote_path option.
* #249: Update Healthchecks/Cronitor/Cronhub monitoring integrations to fire for "check" and
"prune" actions, not just "create".
1.4.19
* #259: Optionally change the internal database dump path via "borgmatic_source_directory" option
in location configuration section.
* #271: Support piping "borgmatic list" output to grep by logging certain log levels to console
stdout and others to stderr.
* Retain colored output when piping or redirecting in an interactive terminal.
* Add end-to-end tests for database dump and restore. These are run on developer machines with
Docker Compose for approximate parity with continuous integration tests.
1.4.18
* Fix "--repository" flag to accept relative paths.
* Fix "borgmatic umount" so it only runs Borg once instead of once per repository / configuration
file.
* #253: Mount whole repositories via "borgmatic mount" without any "--archive" flag.
* #269: Filter listed paths via "borgmatic list --path" flag.
1.4.17
* #235: Pass extra options directly to particular Borg commands, handy for Borg options that
borgmatic does not yet support natively. Use "extra_borg_options" in the storage configuration
section.
* #266: Attempt to repair any inconsistencies found during a consistency check via
"borgmatic check --repair" flag.
1.4.16
* #256: Fix for "before_backup" hook not triggering an error when the command contains "borg" and
has an exit code of 1.
* #257: Fix for garbled Borg file listing when using "borgmatic create --progress" with
verbosity level 1 or 2.
* #260: Fix for missing Healthchecks monitoring payload or HTTP 500 due to incorrect unicode
encoding.
1.4.15
* Fix for database dump removal incorrectly skipping some database dumps.
* #123: Support for mounting an archive as a FUSE filesystem via "borgmatic mount" action, and
unmounting via "borgmatic umount". See the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/extract-a-backup/#mount-a-filesystem
1.4.14
* Show summary log errors regardless of verbosity level, and log the "summary:" header with a log
level based on the contained summary logs.
1.4.13
* Show full error logs at "--verbosity 0" so you can see command output without upping the
verbosity level.
1.4.12
* #247: With "borgmatic check", consider Borg warnings as errors.
* Dial back the display of inline error logs a bit, so failed command output doesn't appear
multiple times in the logs (well, except for the summary).
1.4.11
* #241: When using the Healthchecks monitoring hook, include borgmatic logs in the payloads for
completion and failure pings.
* With --verbosity level 1 or 2, show error logs both inline when they occur and in the summary
logs at the bottom. With lower verbosity levels, suppress the summary and show error logs when
they occur.
1.4.10
* #246: Fix for "borgmatic restore" showing success and incorrectly extracting archive files, even
when no databases are configured to restore. As this can overwrite files from the archive and
lead to data loss, please upgrade to get the fix before using "borgmatic restore".
* Reopen the file given by "--log-file" flag if an external program rotates the log file while
borgmatic is running.
1.4.9
* #228: Database dump hooks for MySQL/MariaDB, so you can easily dump your databases before backups
run.
* #243: Fix repository does not exist error with "borgmatic extract" when repository is remote.
1.4.8
* Monitor backups with Cronhub hook integration. See the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#cronhub-hook
* Fix Healthchecks/Cronitor hooks to skip actions when the borgmatic "--dry-run" flag is used.
1.4.7
* #238: In documentation, clarify when Healthchecks/Cronitor hooks fire in relation to other hooks.
* #239: Upgrade your borgmatic configuration to get new options and comments via
"generate-borgmatic-config --source". See the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/upgrade/#upgrading-your-configuration
1.4.6
* Verbosity level "-1" for even quieter output: Errors only (#236).
1.4.5
* Log to file instead of syslog via command-line "--log-file" flag (#233).
1.4.4
* #234: Support for Borg --keep-exclude-tags and --exclude-nodump options.
1.4.3
* Monitor backups with Cronitor hook integration. See the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#cronitor-hook
1.4.2
* Extract files to a particular directory via "borgmatic extract --destination" flag.
* Rename "borgmatic extract --restore-path" flag to "--path" to reduce confusion with the separate
"borgmatic restore" action. Any uses of "--restore-path" will continue working.
1.4.1
* #229: Restore backed up PostgreSQL databases via "borgmatic restore" action. See the
documentation for more information:
https://torsion.org/borgmatic/docs/how-to/backup-your-databases/
* Documentation on how to develop borgmatic's documentation:
https://torsion.org/borgmatic/docs/how-to/develop-on-borgmatic/#documentation-development
1.4.0
* #225: Database dump hooks for PostgreSQL, so you can easily dump your databases before backups
run.
@ -247,7 +1026,7 @@
* #77: Skip non-"*.yaml" config filenames in /etc/borgmatic.d/ so as not to parse backup files,
editor swap files, etc.
* #81: Document user-defined hooks run before/after backup, or on error.
* Add code style guidelines to the documention.
* Add code style guidelines to the documentation.
1.2.0
* #61: Support for Borg --list option via borgmatic command-line to list all archives.
@ -285,7 +1064,7 @@
* #49: Support for Borg experimental --patterns-from and --patterns options for specifying mixed
includes/excludes.
* Moved issue tracker from Taiga to integrated Gitea tracker at
https://projects.torsion.org/witten/borgmatic/issues
https://projects.torsion.org/borgmatic-collective/borgmatic/issues
1.1.12
* #46: Declare dependency on pykwalify 1.6 or above, as older versions yield "Unknown key: version"

191
README.md
View file

@ -2,127 +2,158 @@
title: borgmatic
permalink: index.html
---
<a href="https://build.torsion.org/witten/borgmatic" alt="build status">![Build Status](https://build.torsion.org/api/badges/witten/borgmatic/status.svg?ref=refs/heads/master)</a>
## Overview
## It's your data. Keep it that way.
<img src="https://projects.torsion.org/witten/borgmatic/raw/branch/master/static/borgmatic.png" alt="borgmatic logo" width="150px" style="float: right; padding-left: 1em;">
<img src="docs/static/borgmatic.png" alt="borgmatic logo" width="150px" style="float: right; padding-left: 1em;">
borgmatic is simple, configuration-driven backup software for servers and
workstations. Backup all of your machines from the command-line or scheduled
jobs. No GUI required. Built atop [Borg Backup](https://www.borgbackup.org/),
borgmatic initiates a backup, prunes any old backups according to a retention
policy, and validates backups for consistency. borgmatic supports specifying
your settings in a declarative configuration file, rather than having to put
them all on the command-line, and handles common errors.
workstations. Protect your files with client-side encryption. Backup your
databases too. Monitor it all with integrated third-party services.
Here's an example config file:
The canonical home of borgmatic is at <a href="https://torsion.org/borgmatic">https://torsion.org/borgmatic/</a>
Here's an example configuration file:
```yaml
location:
# List of source directories to backup. Globs are expanded.
source_directories:
- /home
- /etc
- /var/log/syslog*
# List of source directories to backup.
source_directories:
- /home
- /etc
# Paths to local or remote repositories.
repositories:
- user@backupserver:sourcehostname.borg
# Paths of local or remote repositories to backup to.
repositories:
- path: ssh://k8pDxu32@k8pDxu32.repo.borgbase.com/./repo
label: borgbase
- path: /var/lib/backups/local.borg
label: local
# Any paths matching these patterns are excluded from backups.
exclude_patterns:
- /home/*/.cache
# Retention policy for how many backups to keep.
keep_daily: 7
keep_weekly: 4
keep_monthly: 6
retention:
# Retention policy for how many backups to keep in each category.
keep_daily: 7
keep_weekly: 4
keep_monthly: 6
# List of checks to run to validate your backups.
checks:
- name: repository
- name: archives
frequency: 2 weeks
consistency:
# List of consistency checks to run: "repository", "archives", etc.
checks:
- repository
- archives
# Custom preparation scripts to run.
before_backup:
- prepare-for-backup.sh
hooks:
# Preparation scripts to run, databases to dump, and monitoring to perform.
before_backup:
- prepare-for-backup.sh
postgresql_databases:
- name: users
healthchecks: https://hc-ping.com/be067061-cf96-4412-8eae-62b0c50d6a8c
# Databases to dump and include in backups.
postgresql_databases:
- name: users
# Third-party services to notify you if backups aren't happening.
healthchecks:
ping_url: https://hc-ping.com/be067061-cf96-4412-8eae-62b0c50d6a8c
```
borgmatic is hosted at <https://torsion.org/borgmatic> with [source code
available](https://projects.torsion.org/witten/borgmatic). It's also mirrored
on [GitHub](https://github.com/witten/borgmatic) for convenience.
borgmatic is powered by [Borg Backup](https://www.borgbackup.org/).
Want to see borgmatic in action? Check out the <a
href="https://asciinema.org/a/203761" target="_blank">screencast</a>.
## Integrations
<script src="https://asciinema.org/a/203761.js" id="asciicast-203761" async></script>
<a href="https://www.postgresql.org/"><img src="docs/static/postgresql.png" alt="PostgreSQL" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://www.mysql.com/"><img src="docs/static/mysql.png" alt="MySQL" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://mariadb.com/"><img src="docs/static/mariadb.png" alt="MariaDB" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://www.mongodb.com/"><img src="docs/static/mongodb.png" alt="MongoDB" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://sqlite.org/"><img src="docs/static/sqlite.png" alt="SQLite" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://healthchecks.io/"><img src="docs/static/healthchecks.png" alt="Healthchecks" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://cronitor.io/"><img src="docs/static/cronitor.png" alt="Cronitor" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://cronhub.io/"><img src="docs/static/cronhub.png" alt="Cronhub" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://www.pagerduty.com/"><img src="docs/static/pagerduty.png" alt="PagerDuty" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://ntfy.sh/"><img src="docs/static/ntfy.png" alt="ntfy" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://grafana.com/oss/loki/"><img src="docs/static/loki.png" alt="Loki" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://github.com/caronc/apprise/wiki"><img src="docs/static/apprise.png" alt="Apprise" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://www.borgbase.com/?utm_source=borgmatic"><img src="docs/static/borgbase.png" alt="BorgBase" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
## How-to guides
## Getting started
* [Set up backups with borgmatic](https://torsion.org/borgmatic/docs/how-to/set-up-backups/) ⬅ *Start here!*
* [Make per-application backups](https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/)
* [Deal with very large backups](https://torsion.org/borgmatic/docs/how-to/deal-with-very-large-backups/)
* [Inspect your backups](https://torsion.org/borgmatic/docs/how-to/inspect-your-backups/)
* [Monitor your backups](https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/)
* [Restore a backup](https://torsion.org/borgmatic/docs/how-to/restore-a-backup/)
* [Backup your databases](https://torsion.org/borgmatic/docs/how-to/backup-your-databases/)
* [Add preparation and cleanup steps to backups](https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/)
* [Upgrade borgmatic](https://torsion.org/borgmatic/docs/how-to/upgrade/)
* [Develop on borgmatic](https://torsion.org/borgmatic/docs/how-to/develop-on-borgmatic/)
Your first step is to [install and configure
borgmatic](https://torsion.org/borgmatic/docs/how-to/set-up-backups/).
## Reference guides
* [borgmatic configuration reference](https://torsion.org/borgmatic/docs/reference/configuration/)
* [borgmatic command-line reference](https://torsion.org/borgmatic/docs/reference/command-line/)
For additional documentation, check out the links above (left panel on wide screens)
for <a href="https://torsion.org/borgmatic/#documentation">borgmatic how-to and
reference guides</a>.
## Hosting providers
Need somewhere to store your encrypted offsite backups? The following hosting
providers include specific support for Borg/borgmatic. Using these links and
services helps support borgmatic development and hosting. (These are referral
links, but without any tracking scripts or cookies.)
Need somewhere to store your encrypted off-site backups? The following hosting
providers include specific support for Borg/borgmatic—and fund borgmatic
development and hosting when you use these referral links to sign up:
<ul>
<li class="referral"><a href="https://www.rsync.net/cgi-bin/borg.cgi?campaign=borg&adgroup=borgmatic">rsync.net</a>: Cloud Storage provider with full support for borg and any other SSH/SFTP tool</li>
<li class="referral"><a href="https://www.borgbase.com/?utm_source=borgmatic">BorgBase</a>: Borg hosting service with support for monitoring, 2FA, and append-only repos</li>
<li class="referral"><a href="https://hetzner.cloud/?ref=v9dOJ98Ic9I8">Hetzner</a>: A "storage box" that includes support for Borg</li>
</ul>
Additionally, rsync.net has a compatible storage offering, but does not fund
borgmatic development or hosting.
## Support and contributing
### Issues
You've got issues? Or an idea for a feature enhancement? We've got an [issue
tracker](https://projects.torsion.org/witten/borgmatic/issues). In order to
create a new issue or comment on an issue, you'll need to [login
first](https://projects.torsion.org/user/login). Note that you can login with
an existing GitHub account if you prefer.
Are you experiencing an issue with borgmatic? Or do you have an idea for a
feature enhancement? Head on over to our [issue
tracker](https://projects.torsion.org/borgmatic-collective/borgmatic/issues).
In order to create a new issue or add a comment, you'll need to
[register](https://projects.torsion.org/user/sign_up?invite_code=borgmatic)
first. If you prefer to use an existing GitHub account, you can skip account
creation and [login directly](https://projects.torsion.org/user/login).
If you'd like to chat with borgmatic developers or users, head on over to the
`#borgmatic` IRC channel on Freenode, either via <a
href="https://webchat.freenode.net/?channels=borgmatic">web chat</a> or a
native <a href="irc://chat.freenode.net:6697">IRC client</a>.
Also see the [security
policy](https://torsion.org/borgmatic/docs/security-policy/) for any security
issues.
Other questions or comments? Contact <mailto:witten@torsion.org>.
### Social
Follow [borgmatic on Mastodon](https://fosstodon.org/@borgmatic).
### Chat
To chat with borgmatic developers or users, check out the `#borgmatic`
IRC channel on Libera Chat, either via <a
href="https://web.libera.chat/#borgmatic">web chat</a> or a native <a
href="ircs://irc.libera.chat:6697">IRC client</a>. If you don't get a response
right away, please hang around a while—or file a ticket instead.
### Other
Other questions or comments? Contact
[witten@torsion.org](mailto:witten@torsion.org).
### Contributing
borgmatic [source code is
available](https://projects.torsion.org/borgmatic-collective/borgmatic) and is also mirrored
on [GitHub](https://github.com/borgmatic-collective/borgmatic) for convenience.
borgmatic is licensed under the GNU General Public License version 3 or any
later version.
If you'd like to contribute to borgmatic development, please feel free to
submit a [Pull Request](https://projects.torsion.org/witten/borgmatic/pulls)
or open an [issue](https://projects.torsion.org/witten/borgmatic/issues) first
to discuss your idea. We also accept Pull Requests on GitHub, if that's more
your thing. In general, contributions are very welcome. We don't bite!
submit a [Pull
Request](https://projects.torsion.org/borgmatic-collective/borgmatic/pulls) or
open an
[issue](https://projects.torsion.org/borgmatic-collective/borgmatic/issues) to
discuss your idea. Note that you'll need to
[register](https://projects.torsion.org/user/sign_up?invite_code=borgmatic)
first. We also accept Pull Requests on GitHub, if that's more your thing. In
general, contributions are very welcome. We don't bite!
Also, please check out the [borgmatic development
how-to](https://torsion.org/borgmatic/docs/how-to/develop-on-borgmatic/) for
info on cloning source code, running tests, etc.
<a href="https://build.torsion.org/borgmatic-collective/borgmatic" alt="build status">![Build Status](https://build.torsion.org/api/badges/borgmatic-collective/borgmatic/status.svg?ref=refs/heads/main)</a>

18
SECURITY.md Normal file
View file

@ -0,0 +1,18 @@
---
title: Security policy
permalink: security-policy/index.html
---
## Supported versions
While we want to hear about security vulnerabilities in all versions of
borgmatic, security fixes are only made to the most recently released version.
It's not practical for our small volunteer effort to maintain multiple release
branches and put out separate security patches for each.
## Reporting a vulnerability
If you find a security vulnerability, please [file a
ticket](https://torsion.org/borgmatic/#issues) or [send email
directly](mailto:witten@torsion.org) as appropriate. You should expect to hear
back within a few days at most and generally sooner.

View file

View file

@ -0,0 +1,9 @@
import argparse
def update_arguments(arguments, **updates):
'''
Given an argparse.Namespace instance of command-line arguments and one or more keyword argument
updates to perform, return a copy of the arguments with those updates applied.
'''
return argparse.Namespace(**dict(vars(arguments), **updates))

45
borgmatic/actions/borg.py Normal file
View file

@ -0,0 +1,45 @@
import logging
import borgmatic.borg.borg
import borgmatic.borg.rlist
import borgmatic.config.validate
logger = logging.getLogger(__name__)
def run_borg(
repository,
config,
local_borg_version,
borg_arguments,
global_arguments,
local_path,
remote_path,
):
'''
Run the "borg" action for the given repository.
'''
if borg_arguments.repository is None or borgmatic.config.validate.repositories_match(
repository, borg_arguments.repository
):
logger.info(
f'{repository.get("label", repository["path"])}: Running arbitrary Borg command'
)
archive_name = borgmatic.borg.rlist.resolve_archive_name(
repository['path'],
borg_arguments.archive,
config,
local_borg_version,
global_arguments,
local_path,
remote_path,
)
borgmatic.borg.borg.run_arbitrary_borg(
repository['path'],
config,
local_borg_version,
options=borg_arguments.options,
archive=archive_name,
local_path=local_path,
remote_path=remote_path,
)

View file

@ -0,0 +1,34 @@
import logging
import borgmatic.borg.break_lock
import borgmatic.config.validate
logger = logging.getLogger(__name__)
def run_break_lock(
repository,
config,
local_borg_version,
break_lock_arguments,
global_arguments,
local_path,
remote_path,
):
'''
Run the "break-lock" action for the given repository.
'''
if break_lock_arguments.repository is None or borgmatic.config.validate.repositories_match(
repository, break_lock_arguments.repository
):
logger.info(
f'{repository.get("label", repository["path"])}: Breaking repository and cache locks'
)
borgmatic.borg.break_lock.break_lock(
repository['path'],
config,
local_borg_version,
global_arguments,
local_path=local_path,
remote_path=remote_path,
)

View file

@ -0,0 +1,54 @@
import logging
import borgmatic.borg.check
import borgmatic.config.validate
import borgmatic.hooks.command
logger = logging.getLogger(__name__)
def run_check(
config_filename,
repository,
config,
hook_context,
local_borg_version,
check_arguments,
global_arguments,
local_path,
remote_path,
):
'''
Run the "check" action for the given repository.
'''
if check_arguments.repository and not borgmatic.config.validate.repositories_match(
repository, check_arguments.repository
):
return
borgmatic.hooks.command.execute_hook(
config.get('before_check'),
config.get('umask'),
config_filename,
'pre-check',
global_arguments.dry_run,
**hook_context,
)
logger.info(f'{repository.get("label", repository["path"])}: Running consistency checks')
borgmatic.borg.check.check_archives(
repository['path'],
config,
local_borg_version,
check_arguments,
global_arguments,
local_path=local_path,
remote_path=remote_path,
)
borgmatic.hooks.command.execute_hook(
config.get('after_check'),
config.get('umask'),
config_filename,
'post-check',
global_arguments.dry_run,
**hook_context,
)

View file

@ -0,0 +1,66 @@
import logging
import borgmatic.borg.compact
import borgmatic.borg.feature
import borgmatic.config.validate
import borgmatic.hooks.command
logger = logging.getLogger(__name__)
def run_compact(
config_filename,
repository,
config,
hook_context,
local_borg_version,
compact_arguments,
global_arguments,
dry_run_label,
local_path,
remote_path,
):
'''
Run the "compact" action for the given repository.
'''
if compact_arguments.repository and not borgmatic.config.validate.repositories_match(
repository, compact_arguments.repository
):
return
borgmatic.hooks.command.execute_hook(
config.get('before_compact'),
config.get('umask'),
config_filename,
'pre-compact',
global_arguments.dry_run,
**hook_context,
)
if borgmatic.borg.feature.available(borgmatic.borg.feature.Feature.COMPACT, local_borg_version):
logger.info(
f'{repository.get("label", repository["path"])}: Compacting segments{dry_run_label}'
)
borgmatic.borg.compact.compact_segments(
global_arguments.dry_run,
repository['path'],
config,
local_borg_version,
global_arguments,
local_path=local_path,
remote_path=remote_path,
progress=compact_arguments.progress,
cleanup_commits=compact_arguments.cleanup_commits,
threshold=compact_arguments.threshold,
)
else: # pragma: nocover
logger.info(
f'{repository.get("label", repository["path"])}: Skipping compact (only available/needed in Borg 1.2+)'
)
borgmatic.hooks.command.execute_hook(
config.get('after_compact'),
config.get('umask'),
config_filename,
'post-compact',
global_arguments.dry_run,
**hook_context,
)

View file

View file

@ -0,0 +1,103 @@
import json
import logging
import os
import borgmatic.borg.extract
import borgmatic.borg.rlist
import borgmatic.config.validate
import borgmatic.hooks.command
from borgmatic.borg.state import DEFAULT_BORGMATIC_SOURCE_DIRECTORY
logger = logging.getLogger(__name__)
def get_config_paths(bootstrap_arguments, global_arguments, local_borg_version):
'''
Given:
The bootstrap arguments, which include the repository and archive name, borgmatic source directory,
destination directory, and whether to strip components.
The global arguments, which include the dry run flag
and the local borg version,
Return:
The config paths from the manifest.json file in the borgmatic source directory after extracting it from the
repository.
Raise ValueError if the manifest JSON is missing, can't be decoded, or doesn't contain the
expected configuration path data.
'''
borgmatic_source_directory = (
bootstrap_arguments.borgmatic_source_directory or DEFAULT_BORGMATIC_SOURCE_DIRECTORY
)
borgmatic_manifest_path = os.path.expanduser(
os.path.join(borgmatic_source_directory, 'bootstrap', 'manifest.json')
)
extract_process = borgmatic.borg.extract.extract_archive(
global_arguments.dry_run,
bootstrap_arguments.repository,
borgmatic.borg.rlist.resolve_archive_name(
bootstrap_arguments.repository,
bootstrap_arguments.archive,
{},
local_borg_version,
global_arguments,
),
[borgmatic_manifest_path],
{},
local_borg_version,
global_arguments,
extract_to_stdout=True,
)
manifest_json = extract_process.stdout.read()
if not manifest_json:
raise ValueError(
'Cannot read configuration paths from archive due to missing bootstrap manifest'
)
try:
manifest_data = json.loads(manifest_json)
except json.JSONDecodeError as error:
raise ValueError(
f'Cannot read configuration paths from archive due to invalid bootstrap manifest JSON: {error}'
)
try:
return manifest_data['config_paths']
except KeyError:
raise ValueError(
'Cannot read configuration paths from archive due to invalid bootstrap manifest'
)
def run_bootstrap(bootstrap_arguments, global_arguments, local_borg_version):
'''
Run the "bootstrap" action for the given repository.