Skip to content

Latest commit

 

History

History
217 lines (139 loc) · 7.04 KB

znapzend.pod

File metadata and controls

217 lines (139 loc) · 7.04 KB

NAME

znapzend - znapzend daemon

SYNOPSIS

znapzend [options...]

--man                  show man-page and exit
--version              print version and exit
-h,--help              display this help and exit
-d,--debug             print debug messages to STDERR
-n,--noaction          run in simulation mode. does no changes to the filesystem
--nodestroy            does all changes to the filesystem except destroy
--logto=x              select where to log to (syslog::<facility> or <filepath>)
--loglevel=x           define the log level when logging to file
--pidfile=x            write a pid file when running in daemon mode
--daemonize            fork into the background
--runonce=[x]          run one round on the optionally provided dataset
--features=x           comma separated list of features to be enabled
--rootExec=x           exec zfs with this command to obtain root privileges (sudo or pfexec)
--connectTimeout=x     sets the ConnectTimeout for ssh commands
--autoCreation         automatically create dataset on dest if it not exists
--timeWarp=x           shift znapzends sens of NOW into the future by x seconds
--skipOnPreSnapCmdFail skip snapshots if the pre-snap-command fails
--skipOnPreSendCmdFail skip replication if the pre-send-command fails
--cleanOffline         clean up source snapshots even if a destination was offline

DESCRIPTION

ZnapZend is a snapshot based zfs backup daemon creating snapshots on a scheduled basis on the source filesystem and on destination filesystems.

ZnapZend reads its configuration from custom properties in the fileset. Use znapzendzetup to set these properties.

-d, --debug

talk a lot while running. Sends debug messages to stderr.

-n, --noaction

don't do any actions which have lasting effect. Ideal to try our new new configurations together with --debug

--nodestroy

do all changes to the filesystem except destroy old snapshots

--logto={syslog::facility|filepath}

send logs out to either syslog or a logfile. Default is to send logs to syslog::daemon when runing daemonized. When running in debug mode, the logs will go to STDERR by default.

Examples:

--logto=/var/log/znapzend.log
--logto=syslog::daemon
--loglevel={debug|info|warning|err|alert}

Define the log level when logging to file. Default is debug.

--pidfile=path

write a pid file when running in daemon mode pidfile defaults to /var/run/znapzend.pid if no pidfile is given

--daemonize

Fork into the background.

--runonce=[dataset]

run one round on source dataset or on all datasets if empty. This is very useful for testing. Use it in connection with --noaction and --debug while testing your new configuration

--features=feature1,feature2,...

enables enhanced zfs features not supported by all zfs implementations. Do not enable features unless you are sure your zfs supports it

Available features:

oracleMode

working around the following zfs issues we have seen on oracle:

  • The multi snapshot destroy syntax is not available. So stick to destroying them individually.

  • Sometimes a snapshot can not be destroyed because of some oracle zfs bug. Only a reeboot seems to be able to fix this. So we just destroy the ones we can destroy. Logging an error about the problem

recvu

use the -u option on the receive end, to keep the destination zfs filesystems unmounted.

compressed

use 'compressed' to add options -Lce to the zfs send command If a source and destination volume are both using compression, zfs send will, by default, decompress the data before sending. Zfs recv will then compress it again before writing it to disk. Using -c will skip the unnecessary decompress-compress stages. This decreases CPU load on both source and destination as well as reduce network bandwidth. The -L option is for large block support and -e is for embedded data support.

--rootExec={sudo|pfexec}

Execute zfs with this command, 'sudo' or 'pfexec', to obtain root privileges. This is often necessary when running znapzend as a non-privileged user with a zfs install that doesn't support finer permission controls. This also applies to the zfs commands ran on remote servers over ssh.

For sudo, the /etc/sudoers file will need to be modified to allow for passwordless access to zfs commands if znapzend is to be ran as a daemon or the system will be used as a remote. Many ZFS installations include an /etc/sudoers.d/zfs file as an example.

--connectTimeout=timeout

sets the ssh connection timeout (in seconds)

--autoCreation

Automatically create a dataset on a destination host if it's not there yet.

--timeWarp=x

Shift ZnapZends sense of time into the future by x seconds.

The practical application if this function is to determine what will happen at some future point in time. This can be useful for testing but also when running in noaction and debug mode to determine which snapshots would be created and removed at some future point in time.

--skipOnPreSnapCmdFail

Prevent snapshots of a dataset from being taken when it has a pre-snap-command defined and the command returns a non-zero exit code or is killed by a signal.

--skipOnPreSendCmdFail

Prevent snapshots of a dataset from being replicated to a destination when it has a pre-snap-command defined and the command returns a non-zero exit code or is killed by a signal.

--cleanOffline

Clean snapshots of a source dataset even if one or more destination datasets failed during replication. The most recent common snapshot for each destination will not be deleted, but this is a potentially dangerous option. If the preserved snapshot somehow gets deleted from the destination, it may require a full re-replication the next time it is online.

EXAMPLE

To test a new config

znapzend --debug --noaction --runonce=tank/test

To see what is going to happen in one hour

znapzend --debug --noaction --timeWarp=3600 --runonce=tank/test

To run as a daemon

znapzend --daemonize --pidfile=/var/run/znapzend.pid --logto=syslog::daemon

COPYRIGHT

Copyright (c) 2014 by OETIKER+PARTNER AG. All rights reserved.

LICENSE

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

AUTHOR

Tobias Oetiker <[email protected]>, Dominik Hassler <[email protected]>

HISTORY

2014-06-01 had Multi destination backup
2014-05-30 had Initial Version