dar-backup 0.6.21__py3-none-any.whl → 0.7.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dar_backup/Changelog.md +17 -1
- dar_backup/README.md +357 -82
- dar_backup/__about__.py +1 -1
- dar_backup/clean_log.py +2 -0
- dar_backup/cleanup.py +2 -1
- dar_backup/command_runner.py +2 -0
- dar_backup/config_settings.py +2 -0
- dar_backup/dar-backup.conf +4 -2
- dar_backup/dar-backup.conf.j2 +60 -0
- dar_backup/dar_backup.py +6 -6
- dar_backup/dar_backup_systemd.py +3 -0
- dar_backup/demo.py +153 -77
- dar_backup/demo_backup_def.j2 +62 -0
- dar_backup/exceptions.py +2 -0
- dar_backup/installer.py +111 -6
- dar_backup/manager.py +3 -2
- dar_backup/rich_progress.py +3 -0
- dar_backup/util.py +24 -5
- {dar_backup-0.6.21.dist-info → dar_backup-0.7.1.dist-info}/METADATA +359 -83
- dar_backup-0.7.1.dist-info/RECORD +25 -0
- dar_backup-0.6.21.dist-info/RECORD +0 -23
- {dar_backup-0.6.21.dist-info → dar_backup-0.7.1.dist-info}/WHEEL +0 -0
- {dar_backup-0.6.21.dist-info → dar_backup-0.7.1.dist-info}/entry_points.txt +0 -0
- {dar_backup-0.6.21.dist-info → dar_backup-0.7.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dar-backup
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.1
|
|
4
4
|
Summary: A script to do full, differential and incremental backups using dar. Some files are restored from the backups during verification, after which par2 redundancy files are created. The script also has a cleanup feature to remove old backups and par2 files.
|
|
5
5
|
Project-URL: GPG Public Key, https://keys.openpgp.org/search?q=dar-backup@pm.me
|
|
6
6
|
Project-URL: Homepage, https://github.com/per2jensen/dar-backup/tree/main/v2
|
|
@@ -691,6 +691,7 @@ Classifier: Topic :: System :: Archiving :: Backup
|
|
|
691
691
|
Requires-Python: >=3.9
|
|
692
692
|
Requires-Dist: argcomplete>=3.6.2
|
|
693
693
|
Requires-Dist: inputimeout>=1.0.4
|
|
694
|
+
Requires-Dist: jinja2>=3.1.6
|
|
694
695
|
Requires-Dist: rich>=13.0.0
|
|
695
696
|
Description-Content-Type: text/markdown
|
|
696
697
|
|
|
@@ -702,24 +703,27 @@ Description-Content-Type: text/markdown
|
|
|
702
703
|
[](https://codecov.io/gh/per2jensen/dar-backup)
|
|
703
704
|

|
|
704
705
|
[](https://pypi.org/project/dar-backup/)
|
|
705
|
-
[](https://pypi.org/project/dar-backup/)
|
|
707
|
+
[](https://github.com/per2jensen/dar-backup/blob/main/v2/doc/weekly_clones.png)
|
|
708
|
+
[](https://github.com/per2jensen/dar-backup/blob/main/v2/doc/weekly_clones.png)
|
|
707
709
|
|
|
708
710
|
The wonderful 'dar' [Disk Archiver](https://github.com/Edrusb/DAR) is used for
|
|
709
|
-
the heavy lifting, together with
|
|
711
|
+
the heavy lifting, together with [parchive](https://github.com/Parchive/par2cmdline) suite in these scripts.
|
|
710
712
|
|
|
711
713
|
This is the `Python` based [**version 2**](https://github.com/per2jensen/dar-backup/tree/main/v2) of `dar-backup`.
|
|
712
714
|
|
|
713
715
|
## TL;DR
|
|
714
716
|
|
|
715
|
-
`dar-backup` is a Python-powered CLI for creating and validating full, differential, and incremental backups using dar and par2
|
|
717
|
+
`dar-backup` is a Python-powered CLI for creating and validating full, differential, and incremental backups using `dar` and `par2`. Designed for long-term restore integrity, even on user-space filesystems like FUSE.
|
|
716
718
|
|
|
717
719
|
## Table of Contents
|
|
718
720
|
|
|
719
721
|
- [Reliable `dar` backups wrapped in Python](#dar-backup)
|
|
720
722
|
- [My use case](#my-use-case)
|
|
723
|
+
- [Features](#features)
|
|
721
724
|
- [License](#license)
|
|
722
725
|
- [Changelog version 2](https://github.com/per2jensen/dar-backup/blob/main/v2/Changelog.md)
|
|
726
|
+
- [Quick Guide](#quick-guide)
|
|
723
727
|
- [Status](#status)
|
|
724
728
|
- [GPG Signing key](#gpg-signing-key)
|
|
725
729
|
- [Breaking change in version 0.6.0](#breaking-change-in-version-060)
|
|
@@ -731,7 +735,7 @@ This is the `Python` based [**version 2**](https://github.com/per2jensen/dar-bac
|
|
|
731
735
|
- [1 - installation](#1---installation)
|
|
732
736
|
- [2 - configuration](#2---configuration)
|
|
733
737
|
- [3 - generate catalog databases](#3---generate-catalog-databases)
|
|
734
|
-
- [4 -
|
|
738
|
+
- [4 - give `dar-backup` a spin](#4---give-dar-backup-a-spin)
|
|
735
739
|
- [5 - deactivate venv](#5---deactivate-venv)
|
|
736
740
|
- [Config](#config)
|
|
737
741
|
- [Config file](#config-file)
|
|
@@ -775,21 +779,22 @@ This is the `Python` based [**version 2**](https://github.com/per2jensen/dar-bac
|
|
|
775
779
|
- [manager](#manager-options)
|
|
776
780
|
- [cleanup](#cleanup-options)
|
|
777
781
|
- [clean-log](#clean-log-options)
|
|
778
|
-
- [dar-backup-systemd](#dar-backup-systemd)
|
|
779
|
-
- [Installer](#installer)
|
|
780
|
-
- [demo](#demo)
|
|
782
|
+
- [dar-backup-systemd](#dar-backup-systemd-options)
|
|
783
|
+
- [Installer](#installer-options)
|
|
784
|
+
- [demo](#demo-options)
|
|
781
785
|
|
|
782
786
|
## My use case
|
|
783
787
|
|
|
784
|
-
I
|
|
788
|
+
I needed the following:
|
|
785
789
|
|
|
786
|
-
-
|
|
787
|
-
-
|
|
790
|
+
- Backup my workstation to a remote server
|
|
791
|
+
- Backup primarily photos, home made video and different types of documents
|
|
792
|
+
- I have cloud storage mounted on a directory within my home dir. The filesystem is [FUSE based](https://www.kernel.org/doc/html/latest/filesystems/fuse.html), which gives it a few special features
|
|
788
793
|
|
|
789
|
-
I
|
|
794
|
+
- Backup cloud storage (cloud is convenient, but I want control over my backups)
|
|
795
|
+
- A non-privileged user can perform a mount
|
|
796
|
+
- A privileged user cannot look into the filesystem --> a backup script running as root is not suitable
|
|
790
797
|
|
|
791
|
-
- Backup my cloud storage to something local (cloud is convenient, but I want control over my backups)
|
|
792
|
-
- Backup primarily photos, video and different types of documents
|
|
793
798
|
- Have a simple way of restoring, possibly years into the future. 'dar' fits that scenario with a single statically linked binary (kept with the archives). There is no need install/configure anything - restoring is simple and works well.
|
|
794
799
|
- During backup archives must be tested and a restore test (however small) performed
|
|
795
800
|
- Archives stored on a server with a reliable file system (easy to mount a directory over sshfs)
|
|
@@ -797,11 +802,252 @@ I have cloud storage mounted on a directory within my home dir. The filesystem i
|
|
|
797
802
|
|
|
798
803
|
I do not need the encryption features of dar, as all storage is already encrypted.
|
|
799
804
|
|
|
805
|
+
## Features
|
|
806
|
+
|
|
807
|
+
- The battle tested [dar](https://github.com/Edrusb/DAR) Disk Archiver is used for the actual backups - it comes highly recommended.
|
|
808
|
+
- Backup with test of backup and (configurable) restore tests of files with comparison to source
|
|
809
|
+
- [Redundancy files](#par2) created for patching bitrot of the archives (size configurable)
|
|
810
|
+
- Simple [backup definitions](#backup-definition-example) defining what to backup (as many as you need)
|
|
811
|
+
- [Backup catalogs](#dar-manager-databases) in databases, optionally on a disk different from the backups
|
|
812
|
+
- Flexible and precise logging
|
|
813
|
+
- Bash and zsh shell autocompletion for a nice CLI experience, [available completions](#shell-autocompletion):
|
|
814
|
+
|
|
815
|
+
- Options for `dar-backup`, `cleanup`, `manager`
|
|
816
|
+
- Backup definitions
|
|
817
|
+
- Archives - filtered to backup definition if given
|
|
818
|
+
- Catalogs - filtered to backup definition if given
|
|
819
|
+
|
|
820
|
+
- `dar-backup` is easy to install and configure.
|
|
821
|
+
|
|
822
|
+
- ✅ The author has used dar-backup since > 4 years, and has been saved multiple times.
|
|
823
|
+
|
|
800
824
|
## License
|
|
801
825
|
|
|
802
826
|
These scripts are licensed under the GPLv3 license.
|
|
803
827
|
Read more here: [GNU GPL3.0](https://www.gnu.org/licenses/gpl-3.0.en.html), or have a look at the ["LICENSE"](https://github.com/per2jensen/dar-backup/blob/main/LICENSE) file in this repository.
|
|
804
828
|
|
|
829
|
+
## Quick Guide
|
|
830
|
+
|
|
831
|
+
This purpose of this quick guide is to show how `dar-backup` works in a few simple steps.
|
|
832
|
+
|
|
833
|
+
The package include a `demo`application, that can help you set up `dar-backup` quickly.
|
|
834
|
+
|
|
835
|
+
> ⚠️ **Assumption**
|
|
836
|
+
>
|
|
837
|
+
> The demo program uses these directories in your home directory:
|
|
838
|
+
>
|
|
839
|
+
> - $HOME/dar-backup
|
|
840
|
+
> - $HOME/.config/dar-backup
|
|
841
|
+
>
|
|
842
|
+
> It is assumed they **do not exist** before running the demo.
|
|
843
|
+
>
|
|
844
|
+
> Python **>= 3.9** is required
|
|
845
|
+
|
|
846
|
+
<br>
|
|
847
|
+
|
|
848
|
+
**Let's roll** with installation, backup, list backup content, restore & restore check
|
|
849
|
+
|
|
850
|
+
The demo is known to work on an Ubuntu 24.04 clean VM as delivered from `Multipass`
|
|
851
|
+
|
|
852
|
+
```bash
|
|
853
|
+
sudo apt -y install dar par2 python3 python3-venv
|
|
854
|
+
INSTALL_DIR=/tmp/dar-backup
|
|
855
|
+
mkdir "$INSTALL_DIR"
|
|
856
|
+
cd "$INSTALL_DIR"
|
|
857
|
+
python3 -m venv venv # create the virtual environment
|
|
858
|
+
. venv/bin/activate # activate the virtual environment
|
|
859
|
+
pip install dar-backup # run pip to install `dar-backup` into the virtual environment
|
|
860
|
+
```
|
|
861
|
+
|
|
862
|
+
<details>
|
|
863
|
+
|
|
864
|
+
<summary>🎯 Install details</summary>
|
|
865
|
+
|
|
866
|
+
```bash
|
|
867
|
+
(venv) $ INSTALL_DIR=/tmp/dar-backup
|
|
868
|
+
mkdir "$INSTALL_DIR"
|
|
869
|
+
cd "$INSTALL_DIR"
|
|
870
|
+
python3 -m venv venv # create the virtual environment
|
|
871
|
+
. venv/bin/activate # activate the virtual environment
|
|
872
|
+
pip install dar-backup # run pip to install `dar-backup`
|
|
873
|
+
Collecting dar-backup
|
|
874
|
+
Downloading dar_backup-0.6.21-py3-none-any.whl.metadata (88 kB)
|
|
875
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 88.5/88.5 kB 3.7 MB/s eta 0:00:00
|
|
876
|
+
Collecting argcomplete>=3.6.2 (from dar-backup)
|
|
877
|
+
Using cached argcomplete-3.6.2-py3-none-any.whl.metadata (16 kB)
|
|
878
|
+
Collecting inputimeout>=1.0.4 (from dar-backup)
|
|
879
|
+
Using cached inputimeout-1.0.4-py3-none-any.whl.metadata (2.2 kB)
|
|
880
|
+
Collecting rich>=13.0.0 (from dar-backup)
|
|
881
|
+
Using cached rich-14.0.0-py3-none-any.whl.metadata (18 kB)
|
|
882
|
+
Collecting markdown-it-py>=2.2.0 (from rich>=13.0.0->dar-backup)
|
|
883
|
+
Using cached markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB)
|
|
884
|
+
Collecting pygments<3.0.0,>=2.13.0 (from rich>=13.0.0->dar-backup)
|
|
885
|
+
Using cached pygments-2.19.1-py3-none-any.whl.metadata (2.5 kB)
|
|
886
|
+
Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich>=13.0.0->dar-backup)
|
|
887
|
+
Using cached mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)
|
|
888
|
+
Downloading dar_backup-0.6.21-py3-none-any.whl (101 kB)
|
|
889
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.9/101.9 kB 16.2 MB/s eta 0:00:00
|
|
890
|
+
Using cached argcomplete-3.6.2-py3-none-any.whl (43 kB)
|
|
891
|
+
Using cached inputimeout-1.0.4-py3-none-any.whl (4.6 kB)
|
|
892
|
+
Using cached rich-14.0.0-py3-none-any.whl (243 kB)
|
|
893
|
+
Using cached markdown_it_py-3.0.0-py3-none-any.whl (87 kB)
|
|
894
|
+
Using cached pygments-2.19.1-py3-none-any.whl (1.2 MB)
|
|
895
|
+
Using cached mdurl-0.1.2-py3-none-any.whl (10.0 kB)
|
|
896
|
+
Installing collected packages: pygments, mdurl, inputimeout, argcomplete, markdown-it-py, rich, dar-backup
|
|
897
|
+
Successfully installed argcomplete-3.6.2 dar-backup-0.6.21 inputimeout-1.0.4 markdown-it-py-3.0.0 mdurl-0.1.2 pygments-2.19.1 rich-14.0.0
|
|
898
|
+
```
|
|
899
|
+
|
|
900
|
+
</details>
|
|
901
|
+
|
|
902
|
+
Setup the demo configurations and show a few operations
|
|
903
|
+
|
|
904
|
+
<br>
|
|
905
|
+
|
|
906
|
+
```bash
|
|
907
|
+
# see reference section for options tweaking the install
|
|
908
|
+
demo --install
|
|
909
|
+
|
|
910
|
+
# create catalog database
|
|
911
|
+
manager --create-db
|
|
912
|
+
|
|
913
|
+
# do a FULL backup of the installed backup definition called `demo`
|
|
914
|
+
dar-backup --full-backup
|
|
915
|
+
|
|
916
|
+
# list the contents of the backup
|
|
917
|
+
dar-backup --list-contents $(dar-backup --list |tail -n 1 | cut -d " " -f1)
|
|
918
|
+
```
|
|
919
|
+
|
|
920
|
+
<details>
|
|
921
|
+
|
|
922
|
+
<summary>🎯 --list details</summary>
|
|
923
|
+
|
|
924
|
+
```bash
|
|
925
|
+
(venv) $ demo --install
|
|
926
|
+
Directories created.
|
|
927
|
+
File generated at '/home/user/.config/dar-backup/backup.d/demo'
|
|
928
|
+
File generated at '/home/user/.config/dar-backup/dar-backup.conf'
|
|
929
|
+
1. Now run `manager --create-db` to create the catalog database.
|
|
930
|
+
2. Then you can run `dar-backup --full-backup` to create a backup.
|
|
931
|
+
3. List backups with `dar-backup --list`
|
|
932
|
+
4. List contents of a backup with `dar-backup --list-contents <backup-name>`
|
|
933
|
+
|
|
934
|
+
|
|
935
|
+
|
|
936
|
+
(venv) $ manager --create-db
|
|
937
|
+
========== Startup Settings ==========
|
|
938
|
+
manager.py: 0.7.1
|
|
939
|
+
Config file: /home/user/.config/dar-backup/dar-backup.conf
|
|
940
|
+
Logfile: /home/user/dar-backup/dar-backup.log
|
|
941
|
+
dar_manager: /home/user/.local/dar/bin/dar_manager
|
|
942
|
+
dar_manager v.: 1.9.0
|
|
943
|
+
======================================
|
|
944
|
+
|
|
945
|
+
|
|
946
|
+
|
|
947
|
+
(venv) $ dar-backup --full-backup
|
|
948
|
+
========== Startup Settings ==========
|
|
949
|
+
dar-backup.py: 0.7.1
|
|
950
|
+
dar path: /home/user/.local/dar/bin/dar
|
|
951
|
+
dar version: 2.7.17
|
|
952
|
+
Script directory: /home/user/git/dar-backup/v2/src/dar_backup
|
|
953
|
+
Config file: /home/user/.config/dar-backup/dar-backup.conf
|
|
954
|
+
.darrc location: /home/user/git/dar-backup/v2/src/dar_backup/.darrc
|
|
955
|
+
======================================
|
|
956
|
+
|
|
957
|
+
|
|
958
|
+
|
|
959
|
+
(venv) $ dar-backup --list-contents $(dar-backup --list |tail -n 1 | cut -d " " -f1)
|
|
960
|
+
========== Startup Settings ==========
|
|
961
|
+
dar-backup.py: 0.7.1
|
|
962
|
+
dar path: /home/user/.local/dar/bin/dar
|
|
963
|
+
dar version: 2.7.17
|
|
964
|
+
Script directory: /home/user/git/dar-backup/v2/src/dar_backup
|
|
965
|
+
Config file: /home/user/.config/dar-backup/dar-backup.conf
|
|
966
|
+
.darrc location: /home/user/git/dar-backup/v2/src/dar_backup/.darrc
|
|
967
|
+
======================================
|
|
968
|
+
[Saved][-] [-L-][ 49%][ ] drwx------ user user 8 kio Sat May 17 13:13:59 2025 .config
|
|
969
|
+
[Saved][-] [-L-][ 49%][ ] drwxrwxr-x user user 8 kio Tue May 6 20:55:40 2025 .config/dar-backup
|
|
970
|
+
[Saved][-] [-L-][ 48%][ ] drwxrwxr-x user user 6 kio Sat May 17 13:26:21 2025 .config/dar-backup/backup.d
|
|
971
|
+
[Saved][ ] [-L-][ 40%][ ] -rw-rw-r-- user user 764 o Sun Feb 23 21:23:01 2025 .config/dar-backup/backup.d/media-files
|
|
972
|
+
[Saved][ ] [-L-][ 41%][ ] -rw-rw-r-- user user 933 o Sun Feb 23 21:23:15 2025 .config/dar-backup/backup.d/pCloudDrive
|
|
973
|
+
[Saved][ ] [-L-][ 48%][ ] -rw-rw-r-- user user 1 kio Sun Mar 16 10:40:29 2025 .config/dar-backup/backup.d/test
|
|
974
|
+
[Saved][ ] [-L-][ 48%][ ] -rw-rw-r-- user user 824 o Tue May 13 17:00:52 2025 .config/dar-backup/backup.d/default
|
|
975
|
+
[Saved][ ] [-L-][ 48%][ ] -rw-rw-r-- user user 1 kio Sat May 3 10:40:33 2025 .config/dar-backup/backup.d/user-homedir
|
|
976
|
+
[Saved][ ] [-L-][ 54%][ ] -rw-rw-r-- user user 1 kio Sat May 17 18:17:40 2025 .config/dar-backup/backup.d/demo
|
|
977
|
+
[Saved][ ] [-L-][ 55%][ ] -rw-rw-r-- user user 1 kio Sat May 17 18:17:40 2025 .config/dar-backup/dar-backup.conf
|
|
978
|
+
```
|
|
979
|
+
|
|
980
|
+
</details>
|
|
981
|
+
|
|
982
|
+
<br>
|
|
983
|
+
|
|
984
|
+
Perform a restore and show the restored files
|
|
985
|
+
|
|
986
|
+
```bash
|
|
987
|
+
# restore all files in the backup
|
|
988
|
+
dar-backup --restore $(dar-backup --list |tail -n 1 | cut -d " " -f1) --verbose
|
|
989
|
+
|
|
990
|
+
# prove the files have been restored to directory as configured
|
|
991
|
+
find $HOME/dar-backup/restore
|
|
992
|
+
```
|
|
993
|
+
|
|
994
|
+
<details>
|
|
995
|
+
|
|
996
|
+
<summary>🎯 --restore details</summary>
|
|
997
|
+
|
|
998
|
+
```bash
|
|
999
|
+
(venv) $ dar-backup --verbose --restore $(dar-backup --list |tail -n 1 | cut -d " " -f1)
|
|
1000
|
+
========== Startup Settings ==========
|
|
1001
|
+
dar-backup.py: 0.7.1
|
|
1002
|
+
dar path: /home/user/.local/dar/bin/dar
|
|
1003
|
+
dar version: 2.7.17
|
|
1004
|
+
Script directory: /home/user/git/dar-backup/v2/src/dar_backup
|
|
1005
|
+
Config file: /home/user/.config/dar-backup/dar-backup.conf
|
|
1006
|
+
.darrc location: /home/user/git/dar-backup/v2/src/dar_backup/.darrc
|
|
1007
|
+
Backup.d dir: /home/user/.config/dar-backup/backup.d
|
|
1008
|
+
Backup dir: /home/user/dar-backup/backups
|
|
1009
|
+
Restore dir: /home/user/dar-backup/restore
|
|
1010
|
+
Logfile location: /home/user/dar-backup/dar-backup.log
|
|
1011
|
+
PAR2 enabled: True
|
|
1012
|
+
--do-not-compare: False
|
|
1013
|
+
======================================
|
|
1014
|
+
|
|
1015
|
+
|
|
1016
|
+
|
|
1017
|
+
(venv) $ find ~/dar-backup/restore/
|
|
1018
|
+
/home/user/dar-backup/restore/
|
|
1019
|
+
/home/user/dar-backup/restore/.config
|
|
1020
|
+
/home/user/dar-backup/restore/.config/dar-backup
|
|
1021
|
+
/home/user/dar-backup/restore/.config/dar-backup/backup.d
|
|
1022
|
+
/home/user/dar-backup/restore/.config/dar-backup/backup.d/media-files
|
|
1023
|
+
/home/user/dar-backup/restore/.config/dar-backup/backup.d/pCloudDrive
|
|
1024
|
+
/home/user/dar-backup/restore/.config/dar-backup/backup.d/test
|
|
1025
|
+
/home/user/dar-backup/restore/.config/dar-backup/backup.d/default
|
|
1026
|
+
/home/user/dar-backup/restore/.config/dar-backup/backup.d/user-homedir
|
|
1027
|
+
/home/user/dar-backup/restore/.config/dar-backup/backup.d/demo
|
|
1028
|
+
/home/user/dar-backup/restore/.config/dar-backup/dar-backup.conf
|
|
1029
|
+
```
|
|
1030
|
+
|
|
1031
|
+
</details>
|
|
1032
|
+
|
|
1033
|
+
<br>
|
|
1034
|
+
|
|
1035
|
+
> ✅ **Next steps**
|
|
1036
|
+
>
|
|
1037
|
+
> Tinker with `demo's` options:
|
|
1038
|
+
>
|
|
1039
|
+
> - --root-dir (perhaps $HOME)
|
|
1040
|
+
> - --dir-to-backup (perhaps Pictures)
|
|
1041
|
+
> - --backup-dir (perhaps /media/user/big-disk)
|
|
1042
|
+
>
|
|
1043
|
+
> See log file: `cat "$HOME/dar-backup/dar-backup.log"`
|
|
1044
|
+
>
|
|
1045
|
+
> Checkout [systemd timers and services](#generate-systemd-files)
|
|
1046
|
+
>
|
|
1047
|
+
> Checkout [shell autocompletion (very nice !)](#shell-autocompletion)
|
|
1048
|
+
>
|
|
1049
|
+
> Checkout the [reference section](#reference)
|
|
1050
|
+
|
|
805
1051
|
## Status
|
|
806
1052
|
|
|
807
1053
|
As of August 8, 2024 I am using the alpha versions of `dar-backup` (alpha-0.5.9 onwards) in my automated backup routine.
|
|
@@ -977,7 +1223,7 @@ See more [here](#gpg-signing-key).
|
|
|
977
1223
|
|
|
978
1224
|
### 1 - installation
|
|
979
1225
|
|
|
980
|
-
Installation is currently in a venv. These commands are installed in the venv:
|
|
1226
|
+
Installation is currently in a [virtual environment](https://csguide.cs.princeton.edu/software/virtualenv) (commonly called a `venv`). These commands are installed in the venv:
|
|
981
1227
|
|
|
982
1228
|
- dar-back
|
|
983
1229
|
- cleanup
|
|
@@ -989,15 +1235,15 @@ Installation is currently in a venv. These commands are installed in the venv:
|
|
|
989
1235
|
|
|
990
1236
|
Note:
|
|
991
1237
|
|
|
992
|
-
The
|
|
1238
|
+
The modules `inputimeout`, `rich`and `argcomplete` are installed into the venv and used by `dar-backup`
|
|
993
1239
|
|
|
994
|
-
To install
|
|
1240
|
+
To install `dar-backup`, create a venv and run pip:
|
|
995
1241
|
|
|
996
1242
|
```bash
|
|
997
1243
|
mkdir $HOME/tmp
|
|
998
1244
|
cd $HOME/tmp
|
|
999
1245
|
python3 -m venv venv # create the virtual environment
|
|
1000
|
-
. venv/bin/activate # activate the virtual
|
|
1246
|
+
. venv/bin/activate # activate the virtual environment
|
|
1001
1247
|
pip install dar-backup # run pip to install `dar-backup`
|
|
1002
1248
|
```
|
|
1003
1249
|
|
|
@@ -1010,7 +1256,7 @@ alias db=". ~/tmp/venv/bin/activate; dar-backup -v"
|
|
|
1010
1256
|
drop the alias into ~/.bashrc like this:
|
|
1011
1257
|
|
|
1012
1258
|
```bash
|
|
1013
|
-
grep -qxF 'alias db="
|
|
1259
|
+
grep -qxF 'alias db="' ~/.bashrc \
|
|
1014
1260
|
|| echo 'alias db=". ~/tmp/venv/bin/activate; dar-backup -v"' >> ~/.bashrc
|
|
1015
1261
|
|
|
1016
1262
|
source ~/.bashrc
|
|
@@ -1029,7 +1275,10 @@ See section 15 and section 16 in the supplied "LICENSE" file.
|
|
|
1029
1275
|
|
|
1030
1276
|
### 2 - configuration
|
|
1031
1277
|
|
|
1032
|
-
The dar-backup
|
|
1278
|
+
The dar-backup [demo](#demo-options) application can be used to demo how `dar-backup` works.
|
|
1279
|
+
It creates some directories, installs a demo configuration file and puts a demo backup definition in place.
|
|
1280
|
+
|
|
1281
|
+
`demo` is non-destructive and stops if some of the default directories exist.
|
|
1033
1282
|
|
|
1034
1283
|
Run `demo`
|
|
1035
1284
|
|
|
@@ -1059,22 +1308,32 @@ Generate the archive catalog database(s).
|
|
|
1059
1308
|
manager --create-db
|
|
1060
1309
|
```
|
|
1061
1310
|
|
|
1062
|
-
### 4 -
|
|
1311
|
+
### 4 - give dar-backup a spin
|
|
1063
1312
|
|
|
1064
|
-
|
|
1065
|
-
[Backup definitions](#backup-definition-example) are in place in BACKUP.D_DIR (see [config file](#config-file)).
|
|
1313
|
+
The `demo` application has put a demo [backup definition](#backup-definition-example) in place in BACKUP.D_DIR (see [config file](#config-file)).
|
|
1066
1314
|
|
|
1067
|
-
You are ready to do backups
|
|
1315
|
+
You are now ready to do backups as configured in the backup definition.
|
|
1316
|
+
|
|
1317
|
+
Give `dar-backup`a spin:
|
|
1068
1318
|
|
|
1069
1319
|
```bash
|
|
1070
|
-
dar-backup --full-backup
|
|
1320
|
+
dar-backup --full-backup --verbose
|
|
1321
|
+
|
|
1322
|
+
# list backups
|
|
1323
|
+
dar-backup --list
|
|
1324
|
+
|
|
1325
|
+
# see some examples on usage
|
|
1326
|
+
dar-backup --examples
|
|
1327
|
+
|
|
1328
|
+
# see the log file
|
|
1329
|
+
cat "$HOME/dar-backup/dar-backup.log"
|
|
1071
1330
|
```
|
|
1072
1331
|
|
|
1073
|
-
If you want to see dar-backup's log entries in the terminal, use the `--log-stdout` option.
|
|
1332
|
+
If you want to see dar-backup's log entries in the terminal, use the `--log-stdout` option.
|
|
1074
1333
|
|
|
1075
1334
|
If you want more log messages, use the `--verbose` or `--log-level debug` for even more.
|
|
1076
1335
|
|
|
1077
|
-
If you want a backup
|
|
1336
|
+
If you want to take a backup using a single backup definition, use the `-d <backup definition>` option. The backup definition's name is the filename of the definition in the BACKUP.D_DIR (see [config file](#config-file)).
|
|
1078
1337
|
|
|
1079
1338
|
```bash
|
|
1080
1339
|
dar-backup --full-backup -d <your backup definition>
|
|
@@ -1082,7 +1341,7 @@ dar-backup --full-backup -d <your backup definition>
|
|
|
1082
1341
|
|
|
1083
1342
|
### 5 - deactivate venv
|
|
1084
1343
|
|
|
1085
|
-
Deactivate the virtual environment (venv)
|
|
1344
|
+
Deactivate the virtual environment (venv).
|
|
1086
1345
|
|
|
1087
1346
|
```bash
|
|
1088
1347
|
deactivate
|
|
@@ -1419,20 +1678,20 @@ deactivate
|
|
|
1419
1678
|
gives something like
|
|
1420
1679
|
|
|
1421
1680
|
```text
|
|
1422
|
-
[Saved][-] [-L-][ 0%][ ] drwxrwxr-x
|
|
1423
|
-
[Saved][ ] [-L-][ 93%][ ] -rw-rw-r--
|
|
1424
|
-
[Saved][-] [-L-][ 0%][ ] drwxrwxr-x
|
|
1425
|
-
[Saved][-] [-L-][ 1%][ ] drwxrwxr-x
|
|
1426
|
-
[Saved][ ] [-L-][ 1%][X] -rw-rw-r--
|
|
1427
|
-
[Saved][ ] [-L-][ 1%][X] -rw-rw-r--
|
|
1428
|
-
[Saved][ ] [-L-][ 1%][X] -rw-rw-r--
|
|
1429
|
-
[Saved][ ] [-L-][ 1%][X] -rw-rw-r--
|
|
1430
|
-
[Saved][ ] [-L-][ 1%][X] -rw-rw-r--
|
|
1431
|
-
[Saved][ ] [-L-][ 1%][X] -rw-rw-r--
|
|
1432
|
-
[Saved][ ] [-L-][ 1%][X] -rw-rw-r--
|
|
1433
|
-
[Saved][ ] [-L-][ 91%][ ] -rw-rw-r--
|
|
1434
|
-
[Saved][ ] [-L-][ 92%][ ] -rw-rw-r--
|
|
1435
|
-
[Saved][ ] [-L-][ 91%][ ] -rw-rw-r--
|
|
1681
|
+
[Saved][-] [-L-][ 0%][ ] drwxrwxr-x user user 2 Gio Sat May 10 14:15:07 2025 home/user
|
|
1682
|
+
[Saved][ ] [-L-][ 93%][ ] -rw-rw-r-- user user 29 kio Fri May 9 16:45:38 2025 home/user/data/2023/2023-02-11-Udstilling-Fredericia/DSC_0568.NEF.xmp
|
|
1683
|
+
[Saved][-] [-L-][ 0%][ ] drwxrwxr-x user user 2 Gio Fri May 9 12:49:04 2025 home/user/data/2025
|
|
1684
|
+
[Saved][-] [-L-][ 1%][ ] drwxrwxr-x user user 193 Mio Thu May 8 15:59:17 2025 home/user/data/2025/2025-05-09-Viltrox-25mm-AIR
|
|
1685
|
+
[Saved][ ] [-L-][ 1%][X] -rw-rw-r-- user user 15 Mio Thu May 8 15:52:27 2025 home/user/data/2025/2025-05-09-Viltrox-25mm-AIR/DSC_0563.NEF
|
|
1686
|
+
[Saved][ ] [-L-][ 1%][X] -rw-rw-r-- user user 10 Mio Thu May 8 15:52:27 2025 home/user/data/2025/2025-05-09-Viltrox-25mm-AIR/DSC_0563.JPG
|
|
1687
|
+
[Saved][ ] [-L-][ 1%][X] -rw-rw-r-- user user 9 Mio Thu May 8 15:51:53 2025 home/user/data/2025/2025-05-09-Viltrox-25mm-AIR/DSC_0559.JPG
|
|
1688
|
+
[Saved][ ] [-L-][ 1%][X] -rw-rw-r-- user user 16 Mio Thu May 8 15:51:45 2025 home/user/data/2025/2025-05-09-Viltrox-25mm-AIR/DSC_0558.NEF
|
|
1689
|
+
[Saved][ ] [-L-][ 1%][X] -rw-rw-r-- user user 12 Mio Thu May 8 15:51:45 2025 home/user/data/2025/2025-05-09-Viltrox-25mm-AIR/DSC_0558.JPG
|
|
1690
|
+
[Saved][ ] [-L-][ 1%][X] -rw-rw-r-- user user 16 Mio Thu May 8 15:51:24 2025 home/user/data/2025/2025-05-09-Viltrox-25mm-AIR/DSC_0557.NEF
|
|
1691
|
+
[Saved][ ] [-L-][ 1%][X] -rw-rw-r-- user user 12 Mio Thu May 8 15:51:23 2025 home/user/data/2025/2025-05-09-Viltrox-25mm-AIR/DSC_0557.JPG
|
|
1692
|
+
[Saved][ ] [-L-][ 91%][ ] -rw-rw-r-- user user 22 kio Thu May 8 15:59:58 2025 home/user/data/2025/2025-05-09-Viltrox-25mm-AIR/DSC_0557.JPG.xmp
|
|
1693
|
+
[Saved][ ] [-L-][ 92%][ ] -rw-rw-r-- user user 30 kio Thu May 8 16:00:36 2025 home/user/data/2025/2025-05-09-Viltrox-25mm-AIR/DSC_0557.NEF.xmp
|
|
1694
|
+
[Saved][ ] [-L-][ 91%][ ] -rw-rw-r-- user user 22 kio Thu May 8 16:00:29 2025 home/user/data/2025/2025-05-09-Viltrox-25mm-AIR/DSC_0558.JPG.xmp
|
|
1436
1695
|
```
|
|
1437
1696
|
|
|
1438
1697
|
## dar file selection examples
|
|
@@ -1453,26 +1712,26 @@ This happens when the shell splits the quoted string or interprets globs before
|
|
|
1453
1712
|
|
|
1454
1713
|
### select a directory
|
|
1455
1714
|
|
|
1456
|
-
Select files and sub directories in `home/
|
|
1715
|
+
Select files and sub directories in `home/user/data/2025/2025-05-09-Roskilde-Nordisk-udstilling`
|
|
1457
1716
|
|
|
1458
1717
|
```bash
|
|
1459
|
-
dar-backup --list-contents media-files_INCR_2025-05-10 --selection="-g 'home/
|
|
1718
|
+
dar-backup --list-contents media-files_INCR_2025-05-10 --selection="-g 'home/user/data/2025/2025-05-09-Roskilde-Nordisk-udstilling'"
|
|
1460
1719
|
```
|
|
1461
1720
|
|
|
1462
1721
|
gives
|
|
1463
1722
|
|
|
1464
1723
|
```text
|
|
1465
1724
|
...
|
|
1466
|
-
[Saved][ ] [-L-][ 0%][X] -rw-rw-r--
|
|
1467
|
-
[Saved][ ] [-L-][ 0%][X] -rw-rw-r--
|
|
1468
|
-
[Saved][ ] [-L-][ 0%][X] -rw-rw-r--
|
|
1469
|
-
[Saved][ ] [-L-][ 0%][X] -rw-rw-r--
|
|
1470
|
-
[Saved][ ] [-L-][ 0%][X] -rw-rw-r--
|
|
1471
|
-
[Saved][-] [-L-][ 1%][ ] drwxrwxr-x
|
|
1472
|
-
[Saved][ ] [-L-][ 1%][X] -rw-rw-r--
|
|
1473
|
-
[Saved][ ] [-L-][ 1%][X] -rw-rw-r--
|
|
1474
|
-
[Saved][ ] [-L-][ 1%][X] -rw-rw-r--
|
|
1475
|
-
[Saved][ ] [-L-][ 1%][X] -rw-rw-r--
|
|
1725
|
+
[Saved][ ] [-L-][ 0%][X] -rw-rw-r-- user user 29 Mio Fri May 9 10:33:42 2025 home/user/data/2025/2025-05-09-Roskilde-Nordisk-udstilling/Z50_0572.NEF
|
|
1726
|
+
[Saved][ ] [-L-][ 0%][X] -rw-rw-r-- user user 28 Mio Fri May 9 10:33:12 2025 home/user/data/2025/2025-05-09-Roskilde-Nordisk-udstilling/Z50_0571.NEF
|
|
1727
|
+
[Saved][ ] [-L-][ 0%][X] -rw-rw-r-- user user 25 Mio Fri May 9 10:33:08 2025 home/user/data/2025/2025-05-09-Roskilde-Nordisk-udstilling/Z50_0570.NEF
|
|
1728
|
+
[Saved][ ] [-L-][ 0%][X] -rw-rw-r-- user user 27 Mio Fri May 9 10:32:46 2025 home/user/data/2025/2025-05-09-Roskilde-Nordisk-udstilling/Z50_0569.NEF
|
|
1729
|
+
[Saved][ ] [-L-][ 0%][X] -rw-rw-r-- user user 27 Mio Fri May 9 10:32:46 2025 home/user/data/2025/2025-05-09-Roskilde-Nordisk-udstilling/Z50_0568.NEF
|
|
1730
|
+
[Saved][-] [-L-][ 1%][ ] drwxrwxr-x user user 833 Mio Fri May 9 12:49:57 2025 home/user/data/2025/2025-05-09-Roskilde-Nordisk-udstilling/jpeg
|
|
1731
|
+
[Saved][ ] [-L-][ 1%][X] -rw-rw-r-- user user 11 Mio Fri May 9 10:32:45 2025 home/user/data/2025/2025-05-09-Roskilde-Nordisk-udstilling/jpeg/Z50_0568.JPG
|
|
1732
|
+
[Saved][ ] [-L-][ 1%][X] -rw-rw-r-- user user 11 Mio Fri May 9 10:32:46 2025 home/user/data/2025/2025-05-09-Roskilde-Nordisk-udstilling/jpeg/Z50_0569.JPG
|
|
1733
|
+
[Saved][ ] [-L-][ 1%][X] -rw-rw-r-- user user 9 Mio Fri May 9 10:33:08 2025 home/user/data/2025/2025-05-09-Roskilde-Nordisk-udstilling/jpeg/Z50_0570.JPG
|
|
1734
|
+
[Saved][ ] [-L-][ 1%][X] -rw-rw-r-- user user 13 Mio Fri May 9 10:33:12 2025 home/user/data/2025/2025-05-09-Roskilde-Nordisk-udstilling/jpeg/Z50_0571.JPG
|
|
1476
1735
|
...
|
|
1477
1736
|
```
|
|
1478
1737
|
|
|
@@ -1485,15 +1744,15 @@ dar-backup --list-contents media-files_INCR_2025-05-10 --selection="-I '*Z50*' -
|
|
|
1485
1744
|
gives something like
|
|
1486
1745
|
|
|
1487
1746
|
```text
|
|
1488
|
-
[Saved][-] [-L-][ 0%][ ] drwxrwxr-x
|
|
1489
|
-
[Saved][-] [-L-][ 0%][ ] drwxrwxr-x
|
|
1490
|
-
[Saved][-] [-L-][ 1%][ ] drwxrwxr-x
|
|
1491
|
-
[Saved][-] [-L-][ 0%][ ] drwxrwxr-x
|
|
1492
|
-
[Saved][ ] [-L-][ 0%][X] -rw-rw-r--
|
|
1493
|
-
[Saved][ ] [-L-][ 0%][X] -rw-rw-r--
|
|
1494
|
-
[Saved][ ] [-L-][ 0%][X] -rw-rw-r--
|
|
1495
|
-
[Saved][ ] [-L-][ 0%][X] -rw-rw-r--
|
|
1496
|
-
[Saved][ ] [-L-][ 0%][X] -rw-rw-r--
|
|
1747
|
+
[Saved][-] [-L-][ 0%][ ] drwxrwxr-x user user 2 Gio Sat May 10 14:15:07 2025 home/user
|
|
1748
|
+
[Saved][-] [-L-][ 0%][ ] drwxrwxr-x user user 2 Gio Fri May 9 12:49:04 2025 home/user/data/2025
|
|
1749
|
+
[Saved][-] [-L-][ 1%][ ] drwxrwxr-x user user 193 Mio Thu May 8 15:59:17 2025 home/user/data/2025/2025-05-09-Viltrox-25mm-AIR
|
|
1750
|
+
[Saved][-] [-L-][ 0%][ ] drwxrwxr-x user user 2 Gio Fri May 9 16:47:37 2025 home/user/data/2025/2025-05-09-Roskilde-Nordisk-udstilling
|
|
1751
|
+
[Saved][ ] [-L-][ 0%][X] -rw-rw-r-- user user 26 Mio Fri May 9 11:26:16 2025 home/user/data/2025/2025-05-09-Roskilde-Nordisk-udstilling/Z50_0633.NEF
|
|
1752
|
+
[Saved][ ] [-L-][ 0%][X] -rw-rw-r-- user user 26 Mio Fri May 9 11:26:16 2025 home/user/data/2025/2025-05-09-Roskilde-Nordisk-udstilling/Z50_0632.NEF
|
|
1753
|
+
[Saved][ ] [-L-][ 0%][X] -rw-rw-r-- user user 28 Mio Fri May 9 11:09:04 2025 home/user/data/2025/2025-05-09-Roskilde-Nordisk-udstilling/Z50_0631.NEF
|
|
1754
|
+
[Saved][ ] [-L-][ 0%][X] -rw-rw-r-- user user 29 Mio Fri May 9 11:09:03 2025 home/user/data/2025/2025-05-09-Roskilde-Nordisk-udstilling/Z50_0630.NEF
|
|
1755
|
+
[Saved][ ] [-L-][ 0%][X] -rw-rw-r-- user user 29 Mio Fri May 9 11:09:03 2025 home/user/data/2025/2025-05-09-Roskilde-Nordisk-udstilling/Z50_0629.NEF
|
|
1497
1756
|
...
|
|
1498
1757
|
```
|
|
1499
1758
|
|
|
@@ -1524,9 +1783,9 @@ When restoring and using `/tmp` for --restore-dir, the restored files can be fou
|
|
|
1524
1783
|
|
|
1525
1784
|
### a single file
|
|
1526
1785
|
|
|
1527
|
-
```
|
|
1786
|
+
```bash
|
|
1528
1787
|
. <the virtual env>/bin/activate
|
|
1529
|
-
dar-backup --restore <archive_name> --selection
|
|
1788
|
+
dar-backup --restore <archive_name> --selection="-g path/to/file"
|
|
1530
1789
|
deactivate
|
|
1531
1790
|
```
|
|
1532
1791
|
|
|
@@ -1534,15 +1793,23 @@ deactivate
|
|
|
1534
1793
|
|
|
1535
1794
|
```bash
|
|
1536
1795
|
. <the virtual env>/bin/activate
|
|
1537
|
-
dar-backup --restore <archive_name> --selection
|
|
1796
|
+
dar-backup --restore <archive_name> --selection="-g path/to/directory"
|
|
1538
1797
|
deactivate
|
|
1539
1798
|
```
|
|
1540
1799
|
|
|
1541
1800
|
### .NEF from a specific date
|
|
1542
1801
|
|
|
1802
|
+
The backed up directory contains \*.NEF and \*.xmp files.
|
|
1803
|
+
|
|
1804
|
+
Filtering:
|
|
1805
|
+
|
|
1806
|
+
- Include files with "2024-06-16" in file name
|
|
1807
|
+
- Exclude files with file names ending in ".xmp"
|
|
1808
|
+
- Files must be in directory "home/user/tmp/LUT-play", compared to the file root (`-R`option) in the backup.
|
|
1809
|
+
|
|
1543
1810
|
```bash
|
|
1544
1811
|
. <the virtual env>/bin/activate
|
|
1545
|
-
dar-backup --restore <archive_name> --selection
|
|
1812
|
+
dar-backup --restore <archive_name> --selection="-I '*2024-06-16*' -X '*.xmp' -g home/user/tmp/LUT-play"
|
|
1546
1813
|
deactivate
|
|
1547
1814
|
```
|
|
1548
1815
|
|
|
@@ -1608,13 +1875,13 @@ One way to do that, is to let dar create a FULL archive from scratch, another is
|
|
|
1608
1875
|
I do backups of my homedir. Here it is shown how a FULL archive is merged with a DIFF, creating a new FULL archive.
|
|
1609
1876
|
|
|
1610
1877
|
```bash
|
|
1611
|
-
dar --merge
|
|
1878
|
+
dar --merge user-homedir_FULL_2021-09-12 -A user-homedir_FULL_2021-06-06 -@user-homedir_DIFF_2021-08-29 -s 12G
|
|
1612
1879
|
|
|
1613
1880
|
# test the new FULL archive
|
|
1614
|
-
dar -t
|
|
1881
|
+
dar -t user-homedir_FULL_2021-09-12
|
|
1615
1882
|
|
|
1616
1883
|
# create Par2 redundancy files
|
|
1617
|
-
for file in
|
|
1884
|
+
for file in user-homedir_FULL_yyyy-mm-dd.*.dar; do
|
|
1618
1885
|
par2 c -r5 -n1 "$file"
|
|
1619
1886
|
done
|
|
1620
1887
|
```
|
|
@@ -1749,8 +2016,8 @@ Try auto completion in your session:
|
|
|
1749
2016
|
eval "$(register-python-argcomplete dar-backup)"
|
|
1750
2017
|
eval "$(register-python-argcomplete cleanup)"
|
|
1751
2018
|
eval "$(register-python-argcomplete manager)"
|
|
1752
|
-
complete -o nosort -C 'python -m argcomplete cleanup' cleanup
|
|
1753
|
-
complete -o nosort -C 'python -m argcomplete manager' manager
|
|
2019
|
+
#complete -o nosort -C 'python -m argcomplete cleanup' cleanup
|
|
2020
|
+
#complete -o nosort -C 'python -m argcomplete manager' manager
|
|
1754
2021
|
```
|
|
1755
2022
|
|
|
1756
2023
|
To make it persistent across sessions, add this to your ~/.bashrc:
|
|
@@ -1761,8 +2028,8 @@ eval "$(register-python-argcomplete dar-backup)"
|
|
|
1761
2028
|
eval "$(register-python-argcomplete cleanup)"
|
|
1762
2029
|
eval "$(register-python-argcomplete manager)"
|
|
1763
2030
|
# This disables bash sorting, so sorting is by <backup definition> and <date>
|
|
1764
|
-
complete -o nosort -C 'python -m argcomplete cleanup' cleanup
|
|
1765
|
-
complete -o nosort -C 'python -m argcomplete manager' manager
|
|
2031
|
+
#complete -o nosort -C 'python -m argcomplete cleanup' cleanup
|
|
2032
|
+
#complete -o nosort -C 'python -m argcomplete manager' manager
|
|
1766
2033
|
```
|
|
1767
2034
|
|
|
1768
2035
|
If you're using a virtual environment and register-python-argcomplete isn't in your global PATH, use:
|
|
@@ -1835,7 +2102,7 @@ One backup definition per file
|
|
|
1835
2102
|
| [clean-log](#clean-log-options) | Clean up excessive log output from dar command logs |
|
|
1836
2103
|
| [dar-backup-systemd](#dar-backup-systemd-options) | Generate (and optionally install) systemd timers and services for automated backups |
|
|
1837
2104
|
| [installer](#installer-options) | Set up directories and optionally create catalog databases according to a config file |
|
|
1838
|
-
| [demo](#demo-options) | Set up required directories and
|
|
2105
|
+
| [demo](#demo-options) | Set up required directories and config files for a demo|
|
|
1839
2106
|
|
|
1840
2107
|
### test coverage
|
|
1841
2108
|
|
|
@@ -1966,10 +2233,12 @@ Sets up `dar-backup` according to provided config file.
|
|
|
1966
2233
|
The installer creates the necessary backup catalog databases if `--create-db` is given.
|
|
1967
2234
|
|
|
1968
2235
|
```bash
|
|
1969
|
-
--config
|
|
1970
|
-
--create-db
|
|
1971
|
-
-
|
|
1972
|
-
-
|
|
2236
|
+
--config Sets up `dar-backup`.
|
|
2237
|
+
--create-db Create backup catalog databases. Add it to --config
|
|
2238
|
+
--install-autocompletion Add bash or zsh auto completion - idempotent
|
|
2239
|
+
--remove-autocompletion Remove the auto completion from bash or zsh
|
|
2240
|
+
-v, --version Display version and licensing information.
|
|
2241
|
+
-h, --help Displays usage info
|
|
1973
2242
|
```
|
|
1974
2243
|
|
|
1975
2244
|
### Demo options
|
|
@@ -1992,7 +2261,14 @@ Sets up demo config files:
|
|
|
1992
2261
|
- ~/.config/dar-backup/backup.d/default
|
|
1993
2262
|
|
|
1994
2263
|
```bash
|
|
1995
|
-
-i, --install
|
|
1996
|
-
-
|
|
1997
|
-
-
|
|
2264
|
+
-i, --install Sets up `dar-backup`.
|
|
2265
|
+
--root-dir Specify the root directory for the backup.
|
|
2266
|
+
--dir-to-backup Directory to backup, relative to the root directory.
|
|
2267
|
+
--backup-dir Directory where backups and redundancy files are put.
|
|
2268
|
+
--override By default, the script will not overwrite existing files or directories.
|
|
2269
|
+
Use this option to override this behavior.
|
|
2270
|
+
--generate Generate config files and put them in /tmp/ for inspection
|
|
2271
|
+
without writing to $HOME.
|
|
2272
|
+
-v, --version Display version and licensing information.
|
|
2273
|
+
-h, --help Displays usage info
|
|
1998
2274
|
```
|