diff --git a/Home.md b/Home.md index 04ffd85..9dc4be9 100644 --- a/Home.md +++ b/Home.md @@ -1,6 +1,7 @@ - # Getting started +Look at the [README.md](../blob/master/README.md) for the introduction. + ***Wiki is currently being build*** ## Installation @@ -255,139 +256,6 @@ Look in man ssh_config for many more options. * Set the ```readonly``` property of the target filesystem to ```on```. This prevents changes on the target side. (Normally, if there are changes the next backup will fail and will require a zfs rollback.) Note that readonly means you cant change the CONTENTS of the dataset directly. Its still possible to receive new datasets and manipulate properties etc. * Use ```--clear-refreservation``` to save space on your backup server. * Use ```--clear-mountpoint``` to prevent the target server from mounting the backupped filesystem in the wrong place during a reboot. -## More information - -* [Performance tips (recommended)](Performance%20tips) -* [Common problems and errors](Common%20problems) -* [Thinning out obsolete snapshots](Thinner) -* [Handling ZFS encryption](Encryption) -* [Transfer buffering, compression and rate limiting.](Transfer%20buffering,%20compression%20and%20rate%20limiting) -* [Custom Pre- and post-snapshot commands](Pre%20and%20post%20snapshot%20commands) - - -## Usage - -```console -usage: zfs-autobackup [-h] [--ssh-config CONFIG-FILE] [--ssh-source USER@HOST] - [--ssh-target USER@HOST] [--keep-source SCHEDULE] - [--keep-target SCHEDULE] [--pre-snapshot-cmd COMMAND] - [--post-snapshot-cmd COMMAND] [--other-snapshots] - [--no-snapshot] [--no-send] [--no-thinning] [--no-holds] - [--min-change BYTES] [--allow-empty] [--ignore-replicated] - [--strip-path N] [--clear-refreservation] - [--clear-mountpoint] [--filter-properties PROPERTY,...] - [--set-properties PROPERTY=VALUE,...] [--rollback] - [--destroy-incompatible] [--destroy-missing SCHEDULE] - [--ignore-transfer-errors] [--decrypt] [--encrypt] - [--zfs-compressed] [--test] [--verbose] [--debug] - [--debug-output] [--progress] [--send-pipe COMMAND] - [--recv-pipe COMMAND] [--compress TYPE] [--rate DATARATE] - [--buffer SIZE] - backup-name [target-path] - -zfs-autobackup v3.1 - (c)2021 E.H.Eefting (edwin@datux.nl) - -positional arguments: - backup-name Name of the backup (you should set the zfs property - "autobackup:backup-name" to true on filesystems you - want to backup - target-path Target ZFS filesystem (optional: if not specified, - zfs-autobackup will only operate as snapshot-tool on - source) - -optional arguments: - -h, --help show this help message and exit - --ssh-config CONFIG-FILE - Custom ssh client config - --ssh-source USER@HOST - Source host to get backup from. - --ssh-target USER@HOST - Target host to push backup to. - --keep-source SCHEDULE - Thinning schedule for old source snapshots. Default: - 10,1d1w,1w1m,1m1y - --keep-target SCHEDULE - Thinning schedule for old target snapshots. Default: - 10,1d1w,1w1m,1m1y - --pre-snapshot-cmd COMMAND - Run COMMAND before snapshotting (can be used multiple - times. - --post-snapshot-cmd COMMAND - Run COMMAND after snapshotting (can be used multiple - times. - --other-snapshots Send over other snapshots as well, not just the ones - created by this tool. - --no-snapshot Don't create new snapshots (useful for finishing - uncompleted backups, or cleanups) - --no-send Don't send snapshots (useful for cleanups, or if you - want a serperate send-cronjob) - --no-thinning Do not destroy any snapshots. - --no-holds Don't hold snapshots. (Faster. Allows you to destroy - common snapshot.) - --min-change BYTES Number of bytes written after which we consider a - dataset changed (default 1) - --allow-empty If nothing has changed, still create empty snapshots. - (same as --min-change=0) - --ignore-replicated Ignore datasets that seem to be replicated some other - way. (No changes since lastest snapshot. Useful for - proxmox HA replication) - --strip-path N Number of directories to strip from target path (use 1 - when cloning zones between 2 SmartOS machines) - --clear-refreservation - Filter "refreservation" property. (recommended, safes - space. same as --filter-properties refreservation) - --clear-mountpoint Set property canmount=noauto for new datasets. - (recommended, prevents mount conflicts. same as --set- - properties canmount=noauto) - --filter-properties PROPERTY,... - List of properties to "filter" when receiving - filesystems. (you can still restore them with zfs - inherit -S) - --set-properties PROPERTY=VALUE,... - List of propererties to override when receiving - filesystems. (you can still restore them with zfs - inherit -S) - --rollback Rollback changes to the latest target snapshot before - starting. (normally you can prevent changes by setting - the readonly property on the target_path to on) - --destroy-incompatible - Destroy incompatible snapshots on target. Use with - care! (implies --rollback) - --destroy-missing SCHEDULE - Destroy datasets on target that are missing on the - source. Specify the time since the last snapshot, e.g: - --destroy-missing 30d - --ignore-transfer-errors - Ignore transfer errors (still checks if received - filesystem exists. useful for acltype errors) - --decrypt Decrypt data before sending it over. - --encrypt Encrypt data after receiving it. - --zfs-compressed Transfer blocks that already have zfs-compression as- - is. - --test dont change anything, just show what would be done - (still does all read-only operations) - --verbose verbose output - --debug Show zfs commands that are executed, stops after an - exception. - --debug-output Show zfs commands and their output/exit codes. (noisy) - --progress show zfs progress output. Enabled automaticly on ttys. - (use --no-progress to disable) - --send-pipe COMMAND pipe zfs send output through COMMAND (can be used - multiple times) - --recv-pipe COMMAND pipe zfs recv input through COMMAND (can be used - multiple times) - --compress TYPE Use compression during transfer, defaults to zstd-adapt - if TYPE is not specified. (gzip, pigz-fast, pigz-slow, - zstd-fast, zstd-slow, zstd-adapt, xz, lzo, lz4) - --rate DATARATE Limit data transfer rate (e.g. 128K. requires - mbuffer.) - --buffer SIZE Add zfs send and recv buffers to smooth out IO bursts. - (e.g. 128M. requires mbuffer) - -Full manual at: https://github.com/psy0rz/zfs_autobackup - -``` - ## Restore example @@ -399,6 +267,95 @@ root@fs1:/home/psy# zfs send fs1/zones/backup/zfsbackups/smartos01.server.com/z After that you can rename the disk image from the temporary location to the location of a new SmartOS machine you've created. +## More information + +* [Performance tips (recommended)](Performance%20tips) +* [Common problems and errors](Common%20problems) +* [Thinning out obsolete snapshots](Thinner) +* [Handling ZFS encryption](Encryption) +* [Transfer buffering, compression and rate limiting.](Transfer%20buffering,%20compression%20and%20rate%20limiting) +* [Custom Pre- and post-snapshot commands](Pre%20and%20post%20snapshot%20commands) + +## Usage + +```console +usage: zfs-autobackup [-h] [--ssh-config CONFIG-FILE] [--ssh-source USER@HOST] [--ssh-target USER@HOST] [--keep-source SCHEDULE] [--keep-target SCHEDULE] [--pre-snapshot-cmd COMMAND] + [--post-snapshot-cmd COMMAND] [--other-snapshots] [--no-snapshot] [--no-send] [--no-thinning] [--no-holds] [--min-change BYTES] [--allow-empty] [--exclude-unchanged] [--exclude-received] + [--strip-path N] [--clear-refreservation] [--clear-mountpoint] [--filter-properties PROPERTY,...] [--set-properties PROPERTY=VALUE,...] [--rollback] [--destroy-incompatible] + [--destroy-missing SCHEDULE] [--ignore-transfer-errors] [--decrypt] [--encrypt] [--zfs-compressed] [--test] [--verbose] [--debug] [--debug-output] [--progress] [--send-pipe COMMAND] + [--recv-pipe COMMAND] [--compress [TYPE]] [--rate DATARATE] [--buffer SIZE] [--snapshot-format FORMAT] [--property-format FORMAT] [--hold-format FORMAT] [--version] + [BACKUP-NAME] [TARGET-PATH] + +zfs-autobackup v3.1.1 - (c)2021 E.H.Eefting (edwin@datux.nl) + +positional arguments: + BACKUP-NAME Name of the backup (you should set the zfs property "autobackup:backup-name" to true on filesystems you want to backup + TARGET-PATH Target ZFS filesystem (optional: if not specified, zfs-autobackup will only operate as snapshot-tool on source) + +optional arguments: + -h, --help show this help message and exit + --ssh-config CONFIG-FILE + Custom ssh client config + --ssh-source USER@HOST + Source host to get backup from. + --ssh-target USER@HOST + Target host to push backup to. + --keep-source SCHEDULE + Thinning schedule for old source snapshots. Default: 10,1d1w,1w1m,1m1y + --keep-target SCHEDULE + Thinning schedule for old target snapshots. Default: 10,1d1w,1w1m,1m1y + --pre-snapshot-cmd COMMAND + Run COMMAND before snapshotting (can be used multiple times. + --post-snapshot-cmd COMMAND + Run COMMAND after snapshotting (can be used multiple times. + --other-snapshots Send over other snapshots as well, not just the ones created by this tool. + --no-snapshot Don't create new snapshots (useful for finishing uncompleted backups, or cleanups) + --no-send Don't send snapshots (useful for cleanups, or if you want a serperate send-cronjob) + --no-thinning Do not destroy any snapshots. + --no-holds Don't hold snapshots. (Faster. Allows you to destroy common snapshot.) + --min-change BYTES Number of bytes written after which we consider a dataset changed (default 1) + --allow-empty If nothing has changed, still create empty snapshots. (same as --min-change=0) + --exclude-unchanged Exclude datasets that have no changes since any last snapshot. (Useful in combination with proxmox HA replication) + --exclude-received Exclude datasets that have the origin of their autobackup: property as "received". This can avoid recursive replication between two backup partners. + --strip-path N Number of directories to strip from target path (use 1 when cloning zones between 2 SmartOS machines) + --clear-refreservation + Filter "refreservation" property. (recommended, safes space. same as --filter-properties refreservation) + --clear-mountpoint Set property canmount=noauto for new datasets. (recommended, prevents mount conflicts. same as --set-properties canmount=noauto) + --filter-properties PROPERTY,... + List of properties to "filter" when receiving filesystems. (you can still restore them with zfs inherit -S) + --set-properties PROPERTY=VALUE,... + List of propererties to override when receiving filesystems. (you can still restore them with zfs inherit -S) + --rollback Rollback changes to the latest target snapshot before starting. (normally you can prevent changes by setting the readonly property on the target_path to on) + --destroy-incompatible + Destroy incompatible snapshots on target. Use with care! (implies --rollback) + --destroy-missing SCHEDULE + Destroy datasets on target that are missing on the source. Specify the time since the last snapshot, e.g: --destroy-missing 30d + --ignore-transfer-errors + Ignore transfer errors (still checks if received filesystem exists. useful for acltype errors) + --decrypt Decrypt data before sending it over. + --encrypt Encrypt data after receiving it. + --zfs-compressed Transfer blocks that already have zfs-compression as-is. + --test, --dry-run, -n + Dry run, dont change anything, just show what would be done (still does all read-only operations) + --verbose, -v verbose output + --debug, -d Show zfs commands that are executed, stops after an exception. + --debug-output Show zfs commands and their output/exit codes. (noisy) + --progress show zfs progress output. Enabled automaticly on ttys. (use --no-progress to disable) + --send-pipe COMMAND pipe zfs send output through COMMAND (can be used multiple times) + --recv-pipe COMMAND pipe zfs recv input through COMMAND (can be used multiple times) + --compress [TYPE] Use compression during transfer, defaults to zstd-fast if TYPE is not specified. (gzip, pigz-fast, pigz-slow, zstd-fast, zstd-slow, zstd-adapt, xz, lzo, lz4) + --rate DATARATE Limit data transfer rate (e.g. 128K. requires mbuffer.) + --buffer SIZE Add zfs send and recv buffers to smooth out IO bursts. (e.g. 128M. requires mbuffer) + --snapshot-format FORMAT + Snapshot naming format. Default: {}-%Y%m%d%H%M%S + --property-format FORMAT + Select property naming format. Default: autobackup:{} + --hold-format FORMAT Hold naming format. Default: zfs_autobackup:{} + --version Show version. + +Full manual at: https://github.com/psy0rz/zfs_autobackup +``` + ## Monitoring with Zabbix-jobs You can monitor backups by using my zabbix-jobs script. () diff --git a/_Sidebar.md b/_Sidebar.md index d2d875f..2018ac5 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -1,5 +1,7 @@ zfs-autobackup: -* [Getting started]() + +* [Introduction](../blob/master/README.md) +* [Getting started](Home) * [Performance tips (recommended)](Performance%20tips) * [Common problems and errors](Common%20problems) * [Thinning out obsolete snapshots](Thinner)