-
-
Notifications
You must be signed in to change notification settings - Fork 63
Development
DatuX edited this page Jan 24, 2022
·
15 revisions
These are instructions if you want to modify zfs-autobackup, or if you want to run zfs-autobackup directly from git.
(this is optional, you can also install the requirements globally)
psy@ws1:~/zfs_autobackup$ python3 -m venv backupdev
psy@ws1:~/zfs_autobackup$ source backupdev/bin/activate
(backupdev) psy@ws1:~/zfs_autobackup$ pip install -r requirements.txt
psy@ws1 ~/zfs_autobackup % python3 -m venv backupdev
...
To run zfs_autobackup you can just access it as a python module:
(backupdev) psy@ws1:~/zfs_autobackup$ python -m zfs_autobackup.ZfsAutobackup --version
ZfsAutobackup.py v3.2-alpha1 - (c)2021 E.H.Eefting (edwin@datux.nl)
Same goes for zfs-autoverify:
(backupdev) psy@ws1:~/zfs_autobackup$ python -m zfs_autobackup.ZfsAutoverify --version
ZfsAutoverify.py v3.2-alpha1 - (c)2021 E.H.Eefting (edwin@datux.nl)
zfs-autobackup is a test driven design process, usually i start with creating the test and then writing the code.
The tests run against actual zfs commands and create a lot of temporary pools via loopback-images in the /tmp dir. Therefore the tests need root to run.
The tests also need ssh support via root@localhost, so it will create and install a sshkey if needed.
(backupdev) root@ws1:/home/psy/zfs_autobackup# ./tests/run_tests
###########################################
#### Unit testing against:
#### Python :3.8.10 (default, Nov 26 2021, 20:14:08) [GCC 9.3.0]
#### ZFS userspace :2.1.1-0york0~20.04
#### ZFS kernel :2.1.1-0york0~20.04
#############################################
THIS TEST REQUIRES SSH TO LOCALHOST
test_exitcode (test_cmdpipe.TestCmdPipe)
test piped exitcodes ... ok
...
Sponsored by: JetBrains
zfs-autobackup:
- Introduction (README.md)
- Getting started
- Full manual
- Mounting backup datasets
- Performance tips (recommended)
- Common problems and errors
- Thinning out obsolete snapshots
- Common snapshot and holds
- Handling ZFS encryption
- Transfer buffering, compression and rate limiting.
- Custom Pre- and post-snapshot commands
- Monitoring
Examples: