• Stars
    star
    598
  • Rank 74,853 (Top 2 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created about 9 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ZFS autobackup is used to periodicly backup ZFS filesystems to other locations. Easy to use and very reliable.

ZFS autobackup

Tests Coverage Status Python Package CodeQL

Introduction

ZFS-autobackup tries to be the most reliable and easiest to use tool, while having all the features.

You can either use it as a backup tool, replication tool or snapshot tool.

You can select what to backup by setting a custom ZFS property. This makes it easy to add/remove specific datasets, or just backup your whole pool.

Other settings are just specified on the commandline: Simply setup and test your zfs-autobackup command and fix all the issues you might encounter. When you're done you can just copy/paste your command to a cron or script.

Since it's using ZFS commands, you can see what it's actually doing by specifying --debug. This also helps a lot if you run into some strange problem or errors. You can just copy-paste the command that fails and play around with it on the commandline. (something I missed in other tools)

An important feature that's missing from other tools is a reliable --test option: This allows you to see what zfs-autobackup will do and tune your parameters. It will do everything, except make changes to your system.

Features

  • Works across operating systems: Tested with Linux, FreeBSD/FreeNAS and SmartOS.
  • Low learning curve: no complex daemons or services, no additional software or networking needed.
  • Plays nicely with existing replication systems. (Like Proxmox HA)
  • Automatically selects filesystems to backup by looking at a simple ZFS property.
  • Creates consistent snapshots. (takes all snapshots at once, atomicly.)
  • Multiple backups modes:
    • Backup local data on the same server.
    • "push" local data to a backup-server via SSH.
    • "pull" remote data from a server via SSH and backup it locally.
    • "pull+push": Zero trust between source and target.
  • Can be scheduled via simple cronjob or run directly from commandline.
  • Also supports complex backup geometries.
  • ZFS encryption support: Can decrypt / encrypt or even re-encrypt datasets during transfer.
  • Supports sending with compression. (Using pigz, zstd etc)
  • IO buffering to speed up transfer.
  • Bandwidth rate limiting.
  • Multiple backups from and to the same datasets are no problem.
  • Resillient to errors.
  • Ability to manually 'finish' failed backups to see whats going on.
  • Easy to debug and has a test-mode. Actual unix commands are printed.
  • Uses progressive thinning for older snapshots.
  • Uses zfs-holds on important snapshots to prevent accidental deletion.
  • Automatic resuming of failed transfers.
  • Easy migration from other zfs backup systems to zfs-autobackup.
  • Gracefully handles datasets that no longer exist on source.
  • Complete and clean logging.
  • All code is regression tested against actual ZFS environments.
  • Easy installation:
    • Just install zfs-autobackup via pip.
    • Only needs to be installed on one side.
    • Written in python and uses zfs-commands, no special 3rd party dependency's or compiled libraries needed.
    • No annoying config files or properties.

Getting started

Please look at our wiki to Get started.

Sponsor list

This project was sponsorred by:

More Repositories

1

meowton

Automatic cat weighing and dieting system.
Python
60
star
2

alpinebox

Opinionated Alpine installation with ZFS support and ZFSBootMenu
Shell
32
star
3

ledanim

led animation library esp8266, with nice webgui.
C++
31
star
4

stuff

Random stuff and scripts
C++
21
star
5

ledder

Led strip/matrix animation (javascript/nodejs/raspberry/ws2812 ledstrips)
TypeScript
20
star
6

p1_dsmr_to_influxdb

Stuurt ALLE nederlandse slimme meter data uit de P1 poort naar InfluxDB
Python
17
star
7

Synapse

Advanced event framework in C++
C++
13
star
8

ESPEasy-platformio

ESPEasy build environment for platformio THIS REPOSITORY IS OBSOLETE, GO HERE: https://github.com/letscontrolit/ESPEasy
C++
7
star
9

KMUR2

python/js framework with pure javascript based data exchange and DOM manipulation
JavaScript
7
star
10

etherpaint

High performance websocket based event framework. (Using C++ / uwebsockets / flatbuffers) First app will be etherpaint
JavaScript
7
star
11

ledstream

stream neopixels via wifi @60fps. (use with ledder)
C++
6
star
12

rpi-ws281x-smi

NodeJS module to control up to 16 WS281x ledstrips in parallel on a Raspberry Pi via SMI/DMA.
C
5
star
13

flappijbird

FlappIJbird for IJhack
C++
4
star
14

YTLmodbus

Read DDS353H-1 / DDS353H-2 / DDS353H-3 / YTL5281 / YTL5282 / YTL5283 meters via modbus. And YTL5300 / DTS353F-2
Python
3
star
15

admute

This will mute and skip Youtube ads on LG Webos tv's
Python
2
star
16

kopano-dspam

Monitors a Kopano server for mail-movements between folders to train a users Spamfilter (for example dspam or spamassasin)
Python
1
star
17

portainer-templates

Dockerfile
1
star