Compare commits
32 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bcdb95cab7 | ||
|
|
cd4f3c7634 | ||
|
|
33490febfb | ||
|
|
48523592c7 | ||
|
|
9e7e5b4d28 | ||
|
|
01f37814d7 | ||
|
|
050ee9a23a | ||
|
|
4e162f5df3 | ||
|
|
29020bcdbf | ||
|
|
12c0543752 | ||
|
|
56bfaf7a8f | ||
|
|
96d4238c59 | ||
|
|
56ea8181e4 | ||
|
|
52ac00b354 | ||
| 173f8624bb | |||
| aaad72e2d6 | |||
| 0aefc86116 | |||
| 43469d52c9 | |||
| b840aa4372 | |||
| 837dc27a56 | |||
| 1bbe32fec8 | |||
| 5c03be6fe9 | |||
| 5644f009f7 | |||
| 261756df64 | |||
| 97e99fb458 | |||
| 76cd41e7d8 | |||
| 66e483ddf1 | |||
| 5c9dc9c45b | |||
| 48c784b35d | |||
| 01c9e511a5 | |||
| 015b8b212e | |||
| a82fa5bbe1 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -0,0 +1,3 @@
|
||||
*.html
|
||||
*.bak
|
||||
*~
|
||||
|
||||
2
Makefile
2
Makefile
@@ -1,7 +1,7 @@
|
||||
# dsnap-sync
|
||||
# https://github.com/rzerres/dsnap-sync
|
||||
# Copyright (C) 2016, 2017 James W. Barnett
|
||||
# Copyright (C) 2017 - 2019 Ralf Zerres
|
||||
# Copyright (C) 2017 - 2021 Ralf Zerres
|
||||
|
||||
# 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
|
||||
|
||||
8
PKGBUILD
8
PKGBUILD
@@ -1,8 +1,8 @@
|
||||
# Maintainer: Ralf Zerres <ralf.zerres.de at gmail dot com>
|
||||
# Maintainer: Ralf Zerres <ralf.zerres at mail dot de>
|
||||
pkgname=dsnap-sync
|
||||
pkgver=0.6.0
|
||||
pkgver=0.6.8
|
||||
pkgrel=1
|
||||
pkgdesc="Use snapper snapshots to backup to external drive"
|
||||
pkgdesc="BTRFS centric backups tool supporting snapper history for snapshot backups"
|
||||
arch=(any)
|
||||
url="https://github.com/rzerres/dsnap-sync"
|
||||
license=('GPL')
|
||||
@@ -11,7 +11,7 @@ optdepends=('attr' 'ionice' 'jq: for "MediaPool" functionality' 'libnotify' 'ltf
|
||||
source=(${url}/releases/download/$pkgver/$pkgname-$pkgver.tar.gz{,.sig})
|
||||
#validpgpkeys=('8535CEF3F3C38EE69555BF67E4B5E45AA3B8C5C3')
|
||||
sha512sums=('SKIP')
|
||||
'SKIP')
|
||||
'SKIP')
|
||||
|
||||
package() {
|
||||
cd $pkgname
|
||||
|
||||
146
README.md
146
README.md
@@ -1,12 +1,12 @@
|
||||
<!-- dsnap-sync README.md -->
|
||||
<!-- version: 0.5.9 -->
|
||||
<!-- version: 0.6.10 -->
|
||||
|
||||
# dsnap-sync
|
||||
|
||||
<p align="center">
|
||||
<span>English</span> |
|
||||
<!-- a href="lang/spanish#dsnap-sync">Spanish</a> | -->
|
||||
<a href="lang/german#dsnap-sync">Deutsch</a>
|
||||
<!-- a href="lang/spanish">Spanish</a> | -->
|
||||
<a href="lang/german">Deutsch</a>
|
||||
</p>
|
||||
|
||||
## About
|
||||
@@ -140,17 +140,17 @@ Following tools are used:
|
||||
`dsnap-sync` is a shell script. Thus no compilation is required.
|
||||
To simplify correct target locations, this project uses a Makefile.
|
||||
|
||||
# make install
|
||||
# make install
|
||||
|
||||
If your system uses a non-default location for the snapper
|
||||
configuration defaults, specify the location with an environment variable
|
||||
(`SNAPPER_CONFIG`).
|
||||
|
||||
Arch Linux/Fedora/Gentoo:
|
||||
# make SNAPPER_CONFIG=/etc/conf.d/snapper install
|
||||
Arch Linux/Fedora/Gentoo:
|
||||
# make SNAPPER_CONFIG=/etc/conf.d/snapper install
|
||||
|
||||
Debian/Ubuntu:
|
||||
# make SNAPPER_CONFIG=/etc/default/snapper install
|
||||
Debian/Ubuntu:
|
||||
# make SNAPPER_CONFIG=/etc/default/snapper install
|
||||
|
||||
The local `snapper` configuration will be extended to make use
|
||||
of a new template 'dsnap-sync'.
|
||||
@@ -172,41 +172,43 @@ Please use your host software package manager.
|
||||
|
||||
## Options
|
||||
|
||||
Usage: dsnap-sync [options]
|
||||
Usage: dsnap-sync [options]
|
||||
|
||||
Options:
|
||||
-a, --automount <path> start automount for given path to get a valid target mountpoint.
|
||||
-b, --backupdir <prefix> backupdir is a relative path that will be appended to target backup-root
|
||||
--backuptype <type> Specify backup type <archive | child | parent>
|
||||
--batch no user interaction
|
||||
-d, --description <desc> Change the snapper description. Default: "latest incremental backup"
|
||||
--label-finished <desc> snapper description tagging successful jobs. Default: "dsnap-sync backup"
|
||||
--label-running <desc> snapper description tagging active jobs. Default: "dsnap-sync in progress"
|
||||
--label-synced <desc> snapper description tagging last synced jobs.
|
||||
Default: "dsnap-sync last incremental"
|
||||
--color Enable colored output messages
|
||||
-c, --config <config> Specify the snapper configuration to use. Otherwise will perform for each snapper
|
||||
configuration. You can select multiple configurations
|
||||
(e.g. -c "root" -c "home"; --config root --config home)
|
||||
--config-postfix <name> Specify a postfix that will be appended to the destination snapper config name.
|
||||
--dry-run perform a trial run (no changes are written).
|
||||
--mediapool Specify the name of the tape MediaPool
|
||||
-n, --noconfirm Do not ask for confirmation for each configuration. Will still prompt for backup
|
||||
--nonotify Disable graphical notification (via dbus)
|
||||
--nopv Disable graphical progress output (disable pv)
|
||||
--noionice Disable setting of I/O class and priority options on target
|
||||
-r, --remote <address> Send the snapshot backup to a remote machine. The snapshot will be sent via ssh
|
||||
You should specify the remote machine's hostname or ip address. The 'root' user
|
||||
must be permitted to login on the remote machine
|
||||
-p, --port <port> The remote port
|
||||
-s, --subvolid <subvlid> Specify the subvolume id of the mounted BTRFS subvolume to back up to. Defaults to 5.
|
||||
--use-btrfs-quota use btrfs-quota to calculate snapshot size
|
||||
-u, --uuid <UUID> Specify the UUID of the mounted BTRFS subvolume to back up to. Otherwise will prompt
|
||||
If multiple mount points are found with the same UUID, will prompt for user selection
|
||||
-t, --target <target> Specify the mountpoint of the backup device
|
||||
--volumename Specify the name of the tape volume
|
||||
-v, --verbose Be verbose on what's going on (min: --verbose=1, max: --verbose=3)
|
||||
--version show program version
|
||||
Options:
|
||||
-a, --automount <path> start automount for given path to get a valid target mountpoint.
|
||||
-b, --backupdir <prefix> backupdir is a relative path that will be appended to target backup-root
|
||||
--backuptype <type> Specify backup type <archive | child | parent>
|
||||
--batch no user interaction
|
||||
-d, --description <desc> Change the snapper description. Default: "latest incremental backup"
|
||||
--label-finished <desc> snapper description tagging successful jobs. Default: "dsnap-sync backup"
|
||||
--label-running <desc> snapper description tagging active jobs. Default: "dsnap-sync in progress"
|
||||
--label-synced <desc> snapper description tagging last synced jobs.
|
||||
Default: "dsnap-sync last incremental"
|
||||
--calculate-btrfs-size Enable calculation of sync-size for given snapshots
|
||||
--color Enable colored output messages
|
||||
-c, --config <config> Specify the snapper configuration to use. Otherwise will perform for each snapper
|
||||
configuration. You can select multiple configurations
|
||||
(e.g. -c "root" -c "home"; --config root --config home)
|
||||
--config-postfix <name> Specify a postfix that will be appended to the destination snapper config name.
|
||||
--dry-run perform a trial run (no changes are written).
|
||||
--mediapool Specify the name of the tape MediaPool
|
||||
--no-btrfs-quota don't consume btrfs-quota to estimate snapshot size
|
||||
-n, --noconfirm Do not ask for confirmation for each configuration. Will still prompt for backup
|
||||
--nonotify Disable graphical notification (via dbus)
|
||||
--nopv Disable graphical progress output (disable pv)
|
||||
--noionice Disable setting of I/O class and priority options on target
|
||||
-r, --remote <address> Send the snapshot backup to a remote machine. The snapshot will be sent via ssh
|
||||
You should specify the remote machine's hostname or ip address. The 'root' user
|
||||
must be permitted to login on the remote machine
|
||||
-p, --port <port> The remote port
|
||||
-s, --subvolid <subvlid> Specify the subvolume id of the mounted BTRFS subvolume to back up to. Defaults to 5.
|
||||
--use-btrfs-quota use btrfs-quota to calculate snapshot size
|
||||
-u, --uuid <UUID> Specify the UUID of the mounted BTRFS subvolume to back up to. Otherwise will prompt
|
||||
If multiple mount points are found with the same UUID, will prompt for user selection
|
||||
-t, --target <target> Specify the mountpoint of the backup device
|
||||
--volumename Specify the name of the tape volume
|
||||
-v, --verbose Be verbose on what's going on (min: --verbose=1, max: --verbose=3)
|
||||
--version show program version
|
||||
|
||||
## First run
|
||||
|
||||
@@ -259,7 +261,7 @@ backup types are differenciated:
|
||||
* create a config specific subdirectory (`archive-<config-name>`)
|
||||
* create a snapshot-id subdirectory (`<snapper-id>`)
|
||||
* create the btrfs stream file inside the subdirectory
|
||||
(`<snapper-id>_[full | incremental].btrfs`)
|
||||
(`<snapper-id>_[full | incremental].btrfs`)
|
||||
* the proccess metadata are saved to a file called `info.xml`
|
||||
|
||||
If you enabled the `ltfs` package, support for backups to tape is possible.
|
||||
@@ -304,6 +306,62 @@ FUSE). Read and write access can be managed using common OS tools.
|
||||
An open-source implementation can be found at
|
||||
[LinearTapeFileSystem](https://github.com/LinearTapeFileSystem/ltfs).
|
||||
|
||||
## Restore
|
||||
|
||||
### From Snapshot
|
||||
|
||||
When `dsnap-sync` did save the data using a native btrfs method
|
||||
(`btrfs-snapshot` or `btrfs-clone`), data will be stored in a snapper compatible
|
||||
directory structure on the target.
|
||||
|
||||
The structure may look like:
|
||||
|
||||
* └ backups
|
||||
* └ @\<server-name\>
|
||||
* └ \<subvol-name\>
|
||||
* └ \<subvol-id\>
|
||||
* ├ \.snapshot\>
|
||||
* └ info.xml
|
||||
|
||||
To restore the data, you may either use `snapper` methods or copy back
|
||||
the needed files using standard OS tools.
|
||||
|
||||
* using snapper
|
||||
You may use `snapper diff <id1>..<id2> [files]` to compare the differences
|
||||
between the given suvol-id's.
|
||||
You may use `snapper rollback <id> ` to restore all data from the given \<id\>
|
||||
|
||||
* using OS tools
|
||||
Use your favorit file-manager and change into the directory storing your
|
||||
target backup subvol-id. The snapshots are stored in **read-only** mode.
|
||||
Data are presented flat file and can be copied to any desired destination.
|
||||
|
||||
### From Tape
|
||||
|
||||
When `dsnap-sync` did save the data with method `btrfs-archive`, you will find
|
||||
the corresponding data in a snapper compatible directory structure on the tape.
|
||||
|
||||
The structure may look like:
|
||||
|
||||
* └ backups
|
||||
* └ @\<server-name\>
|
||||
* └ archive-\<subvol-name\>
|
||||
* └ \<subvol-id\>
|
||||
* ├ \<subvol-id\>_full.btrfs
|
||||
* └ info.xml
|
||||
|
||||
The file `info.xml` provides the metadata corresponding to the snapshot.
|
||||
The data of the snapshot is stored in the file `<subvol-id>_full.btrfs`.
|
||||
This file has to be decrypted with btrfs tool `btrfs-send` to a btrfs
|
||||
restore directory:
|
||||
|
||||
cd /target_btrfs_path
|
||||
cp /path_to_tape_root/backups/@<server-name>/archive-<subvol-name>/<subvol-id>_full.btrfs .
|
||||
cat <subvol-id>_full.btrfs | btrfs receive -v .
|
||||
rm <subvol-id>_full.btrfs
|
||||
|
||||
Please consult btrfs-send man-page for further info.
|
||||
|
||||
## Contributing
|
||||
|
||||
Help is very welcome! Feel free to fork and issue a pull request to add
|
||||
@@ -331,4 +389,4 @@ This work is licensed under a [Creative Common License 4.0][License-CC_BY]
|
||||
![Creative Common Logo][Logo-CC_BY]
|
||||
|
||||
© 2016, 2017 James W. Barnett;
|
||||
© 2017 - 2018 Ralf Zerres
|
||||
© 2017 - 2025 Ralf Zerres
|
||||
|
||||
10
TODO.md
10
TODO.md
@@ -4,14 +4,14 @@
|
||||
|
||||
- dsnap-sync: restore btrfs-streams from archive backups
|
||||
* find last full
|
||||
* iterate oval available incrementals
|
||||
* iterate over available incremental snapshots
|
||||
- dsnap-sync: restore btrfs snapshot from snapshot backups
|
||||
* $ssh btrfs send `<snapshot_path>/<snapshot-id>/snapshot_ro` | btrfs receive `/<btrfs-restore-dir>/`
|
||||
(`recieved_uuid` attribte of `<btrfs-restore-dir>/snapshot_ro` will be imported from `<snapshot_path>/<snapshot-id>/snapshot_ro`)
|
||||
(`recieved_uuid` attribte of `<btrfs-restore-dir>/snapshot_ro` will be imported from `<snapshot_path>/<snapshot-id>/snapshot_ro`)
|
||||
* btrfs sub snap `<btrfs-restore-dir>/snapshot_ro` `<btrfs-restore-dir>/snapshot_rw`
|
||||
(create a writable `snapshot_rw`; its attibute `received_uuid` isn't set anymore)
|
||||
(create a writable `snapshot_rw`; its attibute `received_uuid` isn't set anymore)
|
||||
* sub delete `<btrfs-restore-dir>/snapshot_ro`
|
||||
now you are able to mount the snapshot for further processing
|
||||
now you are able to mount the snapshot for further processing
|
||||
- dsnap-sync: parallel tasks per config
|
||||
- consider mbuffer for splitting up btrfs streams
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
- download Source code (zip-file | tar.gz file) to local dir
|
||||
- on local dir
|
||||
* gpg --sign-with `<secret package-signing-key id>`
|
||||
--armor
|
||||
--armor
|
||||
--detach-sign dsnap-sync-`<tag>`.tar.gz
|
||||
- on github: create/edit release
|
||||
* attach binaries by dropping them here or `selecting them`
|
||||
|
||||
5386
bin/dsnap-sync
5386
bin/dsnap-sync
File diff suppressed because it is too large
Load Diff
37
debian/changelog
vendored
37
debian/changelog
vendored
@@ -1,37 +0,0 @@
|
||||
dsnap-sync (0.6.4) unstable; urgency=low
|
||||
|
||||
[Ralf Zerres]
|
||||
* branch: master
|
||||
|
||||
-- Ralf Zerres <rzerres@networkx.de> Thu, 14 Mar 2019 09:20:02 +0100
|
||||
|
||||
dsnap-sync (0.6.0) unstable; urgency=low
|
||||
|
||||
[Ralf Zerres]
|
||||
* branch: master
|
||||
* multi-config: handling of multiple configurations as a group
|
||||
* btrfs-archive: full and incremental stream files
|
||||
* tape: handling of LTFS tapes
|
||||
* ionice: optional use in target streams
|
||||
|
||||
-- Ralf Zerres <rzerres@networkx.de> Sat, 21 Sep 2018 20:00:00 +0200
|
||||
|
||||
dsnap-sync (0.5.9) unstable; urgency=low
|
||||
|
||||
[Ralf Zerres]
|
||||
* branch: wip-d2d
|
||||
* initial tape-admin wrapper
|
||||
* automounter support for target devices
|
||||
* bugfixes
|
||||
* btrfs quota to read valid snapshot size / change size
|
||||
* color handling in verbosity-levels
|
||||
|
||||
-- Ralf Zerres <rzerres@networkx.de> Sat, 25 Aug 2018 20:00:00 +0200
|
||||
|
||||
dsnap-sync (0.5.3) unstable; urgency=low
|
||||
|
||||
[Ralf Zerres]
|
||||
* initial package
|
||||
* adapt compilation to support ubuntu bionic
|
||||
|
||||
-- Ralf Zerres <rzerres@networkx.de> Fri, 1 Jun 2018 21:00:01 +0000
|
||||
1
debian/compat
vendored
1
debian/compat
vendored
@@ -1 +0,0 @@
|
||||
10
|
||||
25
debian/control
vendored
25
debian/control
vendored
@@ -1,25 +0,0 @@
|
||||
Source: dsnap-sync
|
||||
Section: admin
|
||||
Priority: optional
|
||||
Maintainer: Networkx GmbH <support@networkx.de>
|
||||
Build-Depends: debhelper (>= 10), dh-exec
|
||||
Uploaders: Ralf Zerres <ralf.zerres@networkx.de>
|
||||
Standards-Version: 4.1.4.1
|
||||
Homepage: https://github.com/rzerres/dsnap-sync.git
|
||||
|
||||
Package: dsnap-sync
|
||||
Architecture: amd64
|
||||
Conflicts: snap-sync
|
||||
Depends: dash, snapper, btrfs-progs, systemd
|
||||
Suggests: pv, libnotify-bin, mtx, jq, ltfs
|
||||
Description: Backup and synchronize btrfs filesystems
|
||||
dsnap-sync is designed to backup btrfs formated filesystems. It takes
|
||||
advantage of the specific snapshots functionality btrfs offers and i
|
||||
combines it with managemnet functionality of snapper.
|
||||
.
|
||||
dsnap-sync creates backups as btrfs-snapshots on a selectable target
|
||||
device. Plug in and mount any btrfs-formatted device to your system.
|
||||
Supported devices may be either local USB drives, but can be as well
|
||||
remote accessible RAID drives. If possible the backup process will send
|
||||
incremental snapshots to the target drive. If the snapshot will be
|
||||
stored on a remote host, it is secured with ssh.
|
||||
3
debian/dsnap-sync.install
vendored
3
debian/dsnap-sync.install
vendored
@@ -1,3 +0,0 @@
|
||||
bin/
|
||||
etc/
|
||||
usr/
|
||||
22
debian/rules
vendored
22
debian/rules
vendored
@@ -1,22 +0,0 @@
|
||||
#!/usr/bin/make -f
|
||||
# debian/rules
|
||||
# -*- mode: makefile; coding: utf-8 -*-
|
||||
|
||||
export DH_VERBOSE=1
|
||||
#export DESTROOT=$(CURDIR)/debian/dsnap-sync
|
||||
export DESTDIR=$(CURDIR)/debian/dsnap-sync
|
||||
|
||||
%:
|
||||
# dh $@ --sourcedirectory=src
|
||||
dh $@
|
||||
|
||||
#override_dh_auto_configure:
|
||||
# dh_auto_configure --sourcedirectory=src -- --prefix=/usr
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_auto_install -- prefix=/usr
|
||||
|
||||
#override_dh_install:
|
||||
# dh_install
|
||||
# dh_missing --fail-missing
|
||||
|
||||
0
find_snapper_config
Normal file → Executable file
0
find_snapper_config
Normal file → Executable file
@@ -1,8 +1,14 @@
|
||||
<!-- dsnap-sync README.md -->
|
||||
<!-- version: 0.5.9 -->
|
||||
<!-- version: 0.6.9 -->
|
||||
|
||||
# dsnap-sync
|
||||
|
||||
<p align="center">
|
||||
<span>English</span> |
|
||||
<a href="../..">Englisch</a>
|
||||
<!-- a href="../spanish">Spanisch</a> | -->
|
||||
</p>
|
||||
|
||||
## Über
|
||||
|
||||
`dsnap-sync` ist konzipiert, um Backups für btrfs formatierte Dateisysteme
|
||||
@@ -138,17 +144,17 @@ Folgende Tools werden verwendet:
|
||||
erforderlich. Über ein Makefile wird die Installation an den
|
||||
richtigen Ziel-Pfad gesteuert.
|
||||
|
||||
# make install
|
||||
# make install
|
||||
|
||||
Sollte Ihr System einen unüblichen Speicherort für die snapper
|
||||
Konfigurationen verwenden, kann der Pfad in einer Umgebungs-Variable
|
||||
für die Installation einbezogen werden (`SNAPPER_CONFIG`).
|
||||
|
||||
Arch Linux/Fedora/Gentoo:
|
||||
# make SNAPPER_CONFIG=/etc/conf.d/snapper install
|
||||
Arch Linux/Fedora/Gentoo:
|
||||
# make SNAPPER_CONFIG=/etc/conf.d/snapper install
|
||||
|
||||
Debian/Ubuntu:
|
||||
# make SNAPPER_CONFIG=/etc/default/snapper install
|
||||
Debian/Ubuntu:
|
||||
# make SNAPPER_CONFIG=/etc/default/snapper install
|
||||
|
||||
Die lokalen `snapper` Konfiguration werden um ein neues Template
|
||||
'dsnap-sync' ergänzt.
|
||||
@@ -172,41 +178,42 @@ Software Paket Manager.
|
||||
|
||||
## Optionen
|
||||
|
||||
Usage: dsnap-sync [options]
|
||||
Usage: dsnap-sync [options]
|
||||
|
||||
Options:
|
||||
-a, --automount <path> start automount for given path to get a valid target mountpoint.
|
||||
-b, --backupdir <prefix> backupdir is a relative path that will be appended to target backup-root
|
||||
--backuptype <type> Specify backup type <archive | child | parent>
|
||||
--batch no user interaction
|
||||
-d, --description <desc> Change the snapper description. Default: "latest incremental backup"
|
||||
--label-finished <desc> snapper description tagging successful jobs. Default: "dsnap-sync backup"
|
||||
--label-running <desc> snapper description tagging active jobs. Default: "dsnap-sync in progress"
|
||||
--label-synced <desc> snapper description tagging last synced jobs.
|
||||
Default: "dsnap-sync last incremental"
|
||||
--color Enable colored output messages
|
||||
-c, --config <config> Specify the snapper configuration to use. Otherwise will perform for each snapper
|
||||
configuration. You can select multiple configurations
|
||||
(e.g. -c "root" -c "home"; --config root --config home)
|
||||
--config-postfix <name> Specify a postfix that will be appended to the destination snapper config name.
|
||||
--dry-run perform a trial run (no changes are written).
|
||||
--mediapool Specify the name of the tape MediaPool
|
||||
-n, --noconfirm Do not ask for confirmation for each configuration. Will still prompt for backup
|
||||
--nonotify Disable graphical notification (via dbus)
|
||||
--nopv Disable graphical progress output (disable pv)
|
||||
--noionice Disable setting of I/O class and priority options on target
|
||||
-r, --remote <address> Send the snapshot backup to a remote machine. The snapshot will be sent via ssh
|
||||
You should specify the remote machine's hostname or ip address. The 'root' user
|
||||
must be permitted to login on the remote machine
|
||||
-p, --port <port> The remote port
|
||||
-s, --subvolid <subvlid> Specify the subvolume id of the mounted BTRFS subvolume to back up to. Defaults to 5.
|
||||
--use-btrfs-quota use btrfs-quota to calculate snapshot size
|
||||
-u, --uuid <UUID> Specify the UUID of the mounted BTRFS subvolume to back up to. Otherwise will prompt
|
||||
If multiple mount points are found with the same UUID, will prompt for user selection
|
||||
-t, --target <target> Specify the mountpoint of the backup device
|
||||
--volumename Specify the name of the tape volume
|
||||
-v, --verbose Be verbose on what's going on (min: --verbose=1, max: --verbose=3)
|
||||
--version show program version
|
||||
Options:
|
||||
-a, --automount <path> start automount for given path to get a valid target mountpoint.
|
||||
-b, --backupdir <prefix> backupdir is a relative path that will be appended to target backup-root
|
||||
--backuptype <type> Specify backup type <archive | child | parent>
|
||||
--batch no user interaction
|
||||
-d, --description <desc> Change the snapper description. Default: "latest incremental backup"
|
||||
--label-finished <desc> snapper description tagging successful jobs. Default: "dsnap-sync backup"
|
||||
--label-running <desc> snapper description tagging active jobs. Default: "dsnap-sync in progress"
|
||||
--label-synced <desc> snapper description tagging last synced jobs.
|
||||
Default: "dsnap-sync last incremental"
|
||||
--calculate-btrfs-size Enable calculation of sync-size for given snapshots
|
||||
--color Enable colored output messages
|
||||
-c, --config <config> Specify the snapper configuration to use. Otherwise will perform for each snapper
|
||||
configuration. You can select multiple configurations
|
||||
(e.g. -c "root" -c "home"; --config root --config home)
|
||||
--config-postfix <name> Specify a postfix that will be appended to the destination snapper config name.
|
||||
--dry-run perform a trial run (no changes are written).
|
||||
--mediapool Specify the name of the tape MediaPool
|
||||
-n, --noconfirm Do not ask for confirmation for each configuration. Will still prompt for backup
|
||||
--nonotify Disable graphical notification (via dbus)
|
||||
--nopv Disable graphical progress output (disable pv)
|
||||
--noionice Disable setting of I/O class and priority options on target
|
||||
-r, --remote <address> Send the snapshot backup to a remote machine. The snapshot will be sent via ssh
|
||||
You should specify the remote machine's hostname or ip address. The 'root' user
|
||||
must be permitted to login on the remote machine
|
||||
-p, --port <port> The remote port
|
||||
-s, --subvolid <subvlid> Specify the subvolume id of the mounted BTRFS subvolume to back up to. Defaults to 5.
|
||||
--use-btrfs-quota use btrfs-quota to calculate snapshot size
|
||||
-u, --uuid <UUID> Specify the UUID of the mounted BTRFS subvolume to back up to. Otherwise will prompt
|
||||
If multiple mount points are found with the same UUID, will prompt for user selection
|
||||
-t, --target <target> Specify the mountpoint of the backup device
|
||||
--volumename Specify the name of the tape volume
|
||||
-v, --verbose Be verbose on what's going on (min: --verbose=1, max: --verbose=3)
|
||||
--version show program version
|
||||
|
||||
## Erster Sicherungslauf
|
||||
|
||||
@@ -264,7 +271,7 @@ sorgen. Folgende Sicherungstypen werden unterschieden:
|
||||
* ein Unterverzeichnis des Konfigurations-Namens (`archive-<config-name>`)
|
||||
* ein Unterverzeichnis der Snapshot-ID (`<snapper-id>`)
|
||||
* der aktuelle btrfs Stream wird im Unterverzeichnis abgelegt
|
||||
(`<snapper-id>_[full | incremental].btrfs`)
|
||||
(`<snapper-id>_[full | incremental].btrfs`)
|
||||
* die Metadaten des Prozesses werden in der Datei `info.xml` abgelegt
|
||||
|
||||
Steht `ltfs` zur Verfügung, ist ein Backup auf Bänder möglich.
|
||||
@@ -326,6 +333,66 @@ dann mit den gewohnten Betriebssystem Tools. Eine Open-Source Implementierung
|
||||
finden Sie z.B. unter
|
||||
[LinearTapeFileSystem](https://github.com/LinearTapeFileSystem/ltfs).
|
||||
|
||||
## Rücksicherung (restore)
|
||||
|
||||
### Dateisystem (target)
|
||||
|
||||
Wurden Daten mit einer nativen btrfs Methode (`btrfs-snapshot`,
|
||||
`btrfs-clone`) gesichert, befinden sie sich in einer `snapper` kompatiblen
|
||||
Verzeichnisstruktur auf dem gewählten Target.
|
||||
|
||||
Diese Struktur könnte so aussehen:
|
||||
|
||||
* └ backups
|
||||
* └ @\<server-name\>
|
||||
* └ \<subvol-name\>
|
||||
* └ \<subvol-id\>
|
||||
* ├ \.snapshot\>
|
||||
* └ info.xml
|
||||
|
||||
Um Daten zurückzusichern, können Sie entweder native `snapper` Methoden verwenden,
|
||||
oder auf Betriebssystem Programme zurückgreifen.
|
||||
|
||||
* native snapper Methoden
|
||||
|
||||
Verwenden Sie `snapper diff <id1>..<id2> [Dateien]`, um Unterschiede in den
|
||||
gewählten subvol-id's aufzuzeigen.
|
||||
Verwenden Sie `snapper rollback <id>`, um alle Daten der Sicherung (\<subvol-id\>)
|
||||
an den Ursprungsort zurückzusichern.
|
||||
|
||||
* Betriebssystem Programme
|
||||
|
||||
Verwenden Sie Ihren bevorzugten Datei-Manager und wechseln Sie in das
|
||||
Verzeichnis, in dem sich die Daten des gewünschten Backups (\<subvol-id\>)
|
||||
befinden. Die Daten wurden als **read-only** Snapshot gesichert.
|
||||
Sie können von hier aus in jedes gewünsche Zielverzeichnis kopiert werden.
|
||||
|
||||
### Band-Sicherung (tape)
|
||||
|
||||
Wurden Daten mit der Methode `btrfs-archive` gesichert, speichert `dsnap-sync`
|
||||
diese in einer `snapper` kompatiblen Datei-Struktur auf dem Band.
|
||||
|
||||
Dies Struktur könnte so aussehen:
|
||||
|
||||
* └ backups
|
||||
* └ @\<server-name\>
|
||||
* └ archive-\<subvol-name\>
|
||||
* └ \<subvol-id\>
|
||||
* ├ \<subvol-id\>_full.btrfs
|
||||
* └ info.xml
|
||||
|
||||
In der Datei `info.xml` werden die Metadaten zum Snapshot gespeichert.
|
||||
Die Bewegungsdaten des snapshots befinden sich in der Datei `\<subvol-id\>_full.btrfs`.
|
||||
Diese Datei muss mit dem btrfs programm `btrfs-send` auf ein btrfs Verzeichnis zurück
|
||||
geschrieben werden:
|
||||
|
||||
cd /target_btrfs_path
|
||||
cp /path_to_tape_root/backups/@<server-name>/archive-<subvol-name>/<subvol-id>_full.btrfs .
|
||||
cat <subvol-id>_full.btrfs | btrfs receive -v .
|
||||
rm <subvol-id>_full.btrfs
|
||||
|
||||
Die man-page zu `btrfs-send` enthält weiterführende Informationen.
|
||||
|
||||
## Mitarbeit
|
||||
|
||||
Hilfe ist sehr willkommen! Gerne könnt Ihr das Projekt forken und PR's einreichen,
|
||||
@@ -357,4 +424,4 @@ Diese Arbeit ist unter der [Creative Common License 4.0][License-CC_BY] lizensie
|
||||
![Creative Common Logo][Logo-CC_BY]
|
||||
|
||||
© 2016, 2017 James W. Barnett;
|
||||
© 2017 - 2018 Ralf Zerres
|
||||
© 2017 - 2023 Ralf Zerres
|
||||
|
||||
@@ -1,5 +1,25 @@
|
||||
# Examples
|
||||
|
||||
## Snapper configs cache
|
||||
|
||||
To integrate already existing snapshop subfolders located on a given
|
||||
filesystem, you need to add the snapper config name to the config
|
||||
file. Then restart the snapper service to reread the config list.
|
||||
|
||||
```
|
||||
[root@dwsbackup dsnap-sync]# cat /etc/conf.d/snapper
|
||||
## Path: System/Snapper
|
||||
|
||||
## Type: string
|
||||
## Default: ""
|
||||
# List of snapper configurations.
|
||||
|
||||
#SNAPPER_CONFIGS="root data.dwssrv1 home.dwssrv1 machines.dwssrv1 root.dwssrv1 libvirt.dwssrv1 data2.dwssrv1 lxd.dwssrv1 archiv2.dwssrv1 archiv3.dwssrv1 root.dwssrv2"
|
||||
SNAPPER_CONFIGS="root data.dwssrv1"
|
||||
|
||||
[root@dwsbackup dsnap-snyc]# systemctl restart snapperd
|
||||
```
|
||||
|
||||
## Automounter
|
||||
|
||||
`dsnap-sync` will take advantage of systemd automount units to incorporate external,
|
||||
|
||||
Reference in New Issue
Block a user