BSD Ports

filesystems/zrepl-dsh2dsh 1.4.2_5 FreeBSD

ZFS dataset replication tool (fork with more features)

System
FreeBSD
Repository
FreeBSD ports
Maintainer
[email protected]
Last update
Commit
d81b7ba3c3
License
MIT
Categories
filesystems, sysutils
Package size
5201.4 KiB, 17853.0 KiB installed

Description

Cross-platform ZFS replication tool written in Go that supports feature detection, bookmarks, and other new features.

This is a fork with more features like

* support of shell patterns for datasets definitions * new log formatters * ability to log into a file * ability to configure command piplines between `zfs send` and `zfs recv` * Icinga/Nagios checks * fast skip "keep all" pruning * snapshots named using local time in timestamps * configurable RPC timeout * configurable path to zfs binary * faster replication * graceful shutdown * redesigned `zrepl status` TUI

and so on.

In the other systems

SystemPortVersion
FreeBSDfilesystems/zrepl-dsh2dsh1.4.2_5
HardenedBSDfilesystems/zrepl-dsh2dsh1.4.2_3
GhostBSDfilesystems/zrepl-dsh2dsh1.4.2_3

Install

Binary package:

pkg install zrepl-dsh2dsh

From the ports tree:

cd /usr/ports/filesystems/zrepl-dsh2dsh/ && make install clean

To depend on this port in another port's Makefile:

RUN_DEPENDS=	zrepl-dsh2dsh>0:filesystems/zrepl-dsh2dsh

Packages

The version each package repository carries. “-” means the repository builds no package of it, “n/a” that there is no such repository.

Repositoryaarch64amd64armv6armv7i386
FreeBSD:14:latest1.4.2_41.4.2_4-0.9.11_11.4.2_4
FreeBSD:14:quarterly1.4.2_41.4.2_4n/a0.9.6_31.4.2_4
FreeBSD:15:latest1.4.2_41.4.2_4n/a-0.9.11_1
FreeBSD:15:quarterly1.4.2_41.4.2_4n/an/an/a
FreeBSD:16:latest1.4.2_31.4.2_4n/an/an/a
FreeBSD:16:quarterlyn/an/an/an/an/a

Dependencies

The Makefile names none itself; they come from USES and USE_*.

The full lists below include those, and their dependencies in turn.

Build dependencies 1

No port depends on this one.

Configuration

Options name: filesystems_zrepl

OptionDefaultDescription
EXAMPLESoffBuild and/or install examples
USES
go:modules ncurses
Service scripts
none
Conflicts with
zrepl

Message after installing

SETUP BEFORE FIRST USE:
- Create the log file /var/log/zrepl.log:
  # service newsyslog restart
- Modify the /usr/local/etc/zrepl/zrepl.yml configuration file
- Create ZFS datasets like:
  # zfs create -o mountpoint=none -o readonly=on zdisk/zrepl
  # zfs create zdisk/zrepl/localhost
- Enable the zrepl daemon to start automatically at boot:
  # sysrc zrepl_enable="YES"
- Start the zrepl daemon:
  # service zrepl start

Documentation: https://github.com/dsh2dsh/zrepl?tab=readme-ov-file#changes-from-upstream
               https://zrepl.github.io/
Changelog:     https://zrepl.github.io/master/changelog.html

DANGER - SNAPSHOT PRUNING REQUIRES EXPLICIT KEEP RULES:
For any ZFS snapshot that you want to keep, at least one rule must match.
This also applies to snapshots taken by means other than zrepl
(e.g. snapshots taken manually or via boot environment tools).

For monitoring zrepl daemon health and snapshots add this line to
/etc/periodic.conf:

    daily_zrepl_enable="YES"

In order to automatically warn the operator of impending certificate
expiration, add this line to /etc/periodic.conf:

    weekly_zrepl_enable="YES"

More config details in the zrepl periodic script:

    /usr/local/etc/periodic/weekly/500.zrepl

Upgrading from before 0.9.0 need to modify configuration file:

  /usr/local/etc/zrepl/zrepl.yml

Please read more about this change here:
https://github.com/dsh2dsh/zrepl?tab=readme-ov-file#breaking-changes

Files

pkg-plist 29
  • bin/zrepl
  • etc/periodic/daily/zrepl
  • etc/periodic/weekly/500.zrepl
  • etc/rc.d/zrepl
  • @sample(,,0600) etc/zrepl-dsh2dsh/keys.yaml.sample
  • @sample etc/zrepl-dsh2dsh/zrepl.yml.sample
  • share/examples/zrepl-dsh2dsh/bandwidth_limit.yml
  • share/examples/zrepl-dsh2dsh/grafana-prometheus-zrepl.json
  • share/examples/zrepl-dsh2dsh/hooks/template.sh
  • share/examples/zrepl-dsh2dsh/include.d/snap.yml
  • share/examples/zrepl-dsh2dsh/include_directory.yml
  • share/examples/zrepl-dsh2dsh/invalid/duplicate_job_names/zrepl.yml
  • share/examples/zrepl-dsh2dsh/invalid/duplicate_job_names_with_include/included.yml
  • share/examples/zrepl-dsh2dsh/invalid/duplicate_job_names_with_include/zrepl.yml
  • share/examples/zrepl-dsh2dsh/keys.yaml
  • share/examples/zrepl-dsh2dsh/local.yml
  • @sample share/examples/zrepl-dsh2dsh/newsyslog.conf etc/newsyslog.conf.d/zrepl.conf
  • share/examples/zrepl-dsh2dsh/pull.yml
  • share/examples/zrepl-dsh2dsh/push.yml
  • share/examples/zrepl-dsh2dsh/quickstart_backup_to_external_disk.yml
  • share/examples/zrepl-dsh2dsh/quickstart_continuous_server_backup_receiver.yml
  • share/examples/zrepl-dsh2dsh/quickstart_continuous_server_backup_sender.yml
  • share/examples/zrepl-dsh2dsh/quickstart_fan_out_replication_source.yml
  • share/examples/zrepl-dsh2dsh/quickstart_fan_out_replication_target.yml
  • share/examples/zrepl-dsh2dsh/sink.yml
  • share/examples/zrepl-dsh2dsh/snap.yml
  • share/examples/zrepl-dsh2dsh/snap_cron.yml
  • share/examples/zrepl-dsh2dsh/source.yml
  • @dir etc/newsyslog.conf.d
distinfo 2
FileSizeSHA256
go/filesystems_zrepl-dsh2dsh/dsh2dsh-zrepl-v1.4.2_GH0/go.mod3065d03e683ae0e1bcee64a3e652e4fa44772d36dcac683251352a49ad4a716d2c4e
go/filesystems_zrepl-dsh2dsh/dsh2dsh-zrepl-v1.4.2_GH0/dsh2dsh-zrepl-v1.4.2_GH0.tar.gz334843c7b1bc2c329f2b785464d9f6ff7f9e199d67476c5a3060252617378770ad8bd7

Commit history 9

DateCommitCreditsLog message
d81b7ba3c3 Dag-Erling Smørgrav various: Bump Go ports for Go 1.26.10 / 1.27.3
031fc6bfbf Dag-Erling Smørgrav various: Bump Go ports
2c73fa4d6e Dag-Erling Smørgrav various: Drop Go 1.26+ version pin
This is a nop since 1.26 is the oldest supported version.
dd0905142a Adam Weinberger many: Bump go ports for 1.26.8 and 1.27.1
4867821cd6 Dag-Erling Smørgrav various: Bump go ports for go-1.25.14 / 1.26.7

The latest 5 of 9 in the history this site was built from.