|
|
| (172 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
| Zeile 1: |
Zeile 1: |
| {{DISPLAYTITLE:duply}}
| | '''duply''' - [[Inkrementell]]e [[verschlüsselt]]e [[Backup]]s |
| '''duply''' erstellt inkrementelle verschlüsselte Backups | |
| | |
| = Beschreibung =
| |
| * Frontend für [https://de.wikipedia.org/wiki/Duplicity_(Software) duplicity].
| |
| * Backups können lokal oder einem anderen System gespeichert werden.
| |
| * Unterstützte Protokolle: <tt>ftp, ssh, s3, rsync, cifs, webdav, http</tt>.
| |
| | |
| = Installation =
| |
| # apt install duply
| |
| | |
| = Syntax =
| |
| == Parameter ==
| |
| == Optionen ==
| |
| == Umgebungsvariablen ==
| |
| == Exit-Status ==
| |
| | |
| = Konfiguration =
| |
| = Konfiguration =
| |
| == Verschlüsselung konfigurieren ==
| |
| === Schlüssel erstellen ===
| |
| siehe [[GPG#Schl.C3.BCssel_erstellen|GPG]]
| |
| | |
| == Profil erstellen ==
| |
| # duply <backupname> create
| |
| | |
| Ein duply-Profil wird im Home-Verzeichnis des Benutzers unter '''~/.duply/''' angelegt und besteht aus den folgenden Dateien:
| |
| * gpg-key.asc (nur wenn ein gpg-key exportiert wurde.)
| |
| * conf
| |
| * pre und post
| |
| * exclude
| |
| | |
| == Konfiguration ==
| |
| === Verschlüsselung einrichten===
| |
| ====Voraussetzung====
| |
| Key-ID und das Passwort des GPG-Keys müssen dafür hinterlegt werden.
| |
| | |
| GPG_KEY='_GPG_KEY_ID_'
| |
| GPG_PW='_GPG_PASSWORD_'
| |
| | |
| ====Key-ID anzeigen lassen====
| |
| Private-Key
| |
| gpg --list-secret-keys --keyid-format LONG
| |
|
| |
|
| Konsole
| | == Beschreibung == |
| # gpg --list-secret-keys --keyid-format LONG
| | ; Frontend für [[duplicity]] |
| gpg: "Trust-DB" wird überprüft
| | Vereinfacht die Ausführung von Duplicity |
| gpg: marginals needed: 3 completes needed: 1 trust model: pgp
| | * Verwendung von [[duplicity]] vereinfachen |
| gpg: Tiefe: 0 gültig: 1 signiert: 0 Vertrauen: 0-, 0q, 0n, 0m, 0f, 1u
| | * Einstellungen in Profilen verwalten |
| gpg: nächste "Trust-DB"-Pflichtüberprüfung am 2021-11-04
| | * Alle duplicity-Backends werden unterstützt |
| /root/.gnupg/pubring.kbx
| | * Stapelverarbeitung |
| ------------------------
| | ** Ausführung von mehreren Befehlen als Stapelverarbeitung |
| sec rsa4096/F47E1B7450082D11 2020-11-04 [SC] [verfällt: 2021-11-04]
| | ** Damit sind einzeilige cron-Einträge möglich |
| 60E3D3C9ED78CE4A40322BBAF47E1B7450082D11
| | ** der Benutzer kann Skripte verwenden, die vor oder nach dem Backup ausgeführt werden |
| uid [ ultimativ ] Robert Quies (Es grünt so grün, wenn Spaniens Blüten blühn.) <raqju@web.de>
| | * Backups können lokal oder einem anderen System gespeichert werden |
| ssb rsa4096/B2E20485FF7FC772 2020-11-04 [E] [verfällt: 2021-11-04]
| | * Cron oder Kommandozeile |
|
| | * Speichert Einstellungen in Profilen |
| Public-Key
| | * Batch-Operationen |
| # gpg --list-keys --keyid-format LONG
| | *: ermöglicht, beispielsweise backup_verify+purge |
| | * Ausführung von Pre-/Post-Skripten |
| | * verschiedene Aktionen möglich, abhängig vom vorherigen oder nächsten Befehl oder dessen Rückgabewert |
| | * Vorbedingungsprüfung für fehlerfreie Duplizitätsoperationen |
|
| |
|
| Konsole
| | Für jeden Sicherungsauftrag wird ein Konfigurationsprofil erstellt |
| # gpg --list-keys --keyid-format LONG
| |
| /root/.gnupg/pubring.kbx
| |
| ------------------------
| |
| pub rsa4096/F47E1B7450082D11 2020-11-04 [SC] [verfällt: 2021-11-04]
| |
| 60E3D3C9ED78CE4A40322BBAF47E1B7450082D11
| |
| uid [ ultimativ ] Robert Quies (Es grünt so grün, wenn Spaniens Blüten blühn.) <raqju@web.de>
| |
| sub rsa4096/B2E20485FF7FC772 2020-11-04 [E] [verfällt: 2021-11-04]
| |
|
| |
|
| ===Kompression und Art der Verschlüsselung festlegen=== | | == Profilordner == |
| Zusätzlich können in '''GPG_OPTS=''' weitere Optionen zur Kompression und Art der Verschlüsselung gesetzt werden.
| | <syntaxhighlight lang="bash" highlight="1" line copy> |
| *Es soll mit dem freien Komprimierungsprogramm '''bzip2''' komprimiert werden und dem symmetrischen Verschlüsselungsverfahren '''A'''dvanced '''E'''ncryption '''S'''tandard, auch Rijndael-Algorithmus genannt, mit einer Schlüssellänge von '''256''' verschlüsselt werden.
| | ~/.duply/<profile> |
| GPG_OPTS='--compress-algo=bzip2 --personal-cipher-preferences AES256'
| | </syntaxhighlight> |
|
| |
|
| === De-/Aktivieren der Überprüfung GPG-Key und GPG-Passphrase ===
| | ; Hinweis |
| * duply prüft vor jeder Aktion ob der GPG-Key gültig ist und die Passphrase korrekt ist.
| | : Wenn der Ordner '/etc/duply' existiert, werden die Profile für den Superuser Benutzer root dort gesucht und erstellt werden |
| * Dies kann durch die Option '''GPG_TEST='disabled'''' unterbunden werden.
| |
|
| |
|
| Aktiviert
| | == Protokolle == |
| GPG_TEST='disabled'
| | {| class="table table-striped table-hover col1bold col1nowrap" |
| | ! Protokoll !! Beschreibung |
| | |- |
| | | [[ftp]] || |
| | |- |
| | | [[ssh]] || |
| | |- |
| | | [[s3]] || |
| | |- |
| | | [[rsync]] || |
| | |- |
| | | [[cifs]] || |
| | |- |
| | | [[webdav]] || |
| | |- |
| | | [[http]] || |
| | |} |
|
| |
|
| Deaktiviert
| | == Installation == |
| # GPG_TEST='disabled'
| | <syntaxhighlight lang="bash" highlight="1" copy> |
| | sudo apt install duply |
| | </syntaxhighlight> |
|
| |
|
| ===Ziel und Quelle des Backups festlegen=== | | === Dateien === |
| ====Allgemeine Syntax des hosts====
| | └── usr |
| scheme://[user:password@]host[:port]/[/]path | | ├── bin |
| | │ └── duply |
| | └── share |
| | ├── doc |
| | │ └── duply |
| | │ ├── changelog.Debian.gz |
| | │ ├── changelog.gz |
| | │ ├── copyright |
| | │ ├── README |
| | │ ├── README.Debian |
| | │ ├── systemd-unit.examples |
| | │ │ ├── HOWTO.txt |
| | │ │ ├── system |
| | │ │ │ ├── duply-backup@.service |
| | │ │ │ ├── duply-backup@.timer |
| | │ │ │ ├── duply-cleanup@.service |
| | │ │ │ ├── duply-cleanup@.timer |
| | │ │ │ ├── duply-verify@.service |
| | │ │ │ ├── duply-verify@.timer |
| | │ │ │ └── notify-failed-backup@.service |
| | │ │ └── user |
| | │ │ ├── duply-backup@.service |
| | │ │ ├── duply-backup@.timer |
| | │ │ ├── duply-cleanup@.service |
| | │ │ ├── duply-cleanup@.timer |
| | │ │ ├── duply-verify@.service |
| | │ │ ├── duply-verify@.timer |
| | │ │ └── notify-failed-backup@.service |
| | │ └── TODO |
| | └── man |
| | └── man1 |
| | └── duply.1.gz |
|
| |
|
| ====Protokolle und Syntax zur Datenübertragung==== | | == Anhang == |
| * duply versteht alle gängigen Protokolle zur Datenübertragung. | | === Siehe auch === |
| * In der conf-Datei befindet sich meistens eine Liste der wichtigsten unterstützten Protokolle und deren Syntax. | | {{Special:PrefixIndex/{{BASEPAGENAME}}/}} |
| | ---- |
| | * [[GnuPG]] |
| | * [[GnuPG-Agent]] |
| | * [[pinentry-curses]] |
| | * [[duplicity]] |
|
| |
|
| file://[/absolute_]path
| | === Dokumentation === |
| ftp[s]://user[:password]@other.host[:port]/some_dir
| | === Links === |
| hsi://user[:password]@other.host/some_dir
| | ==== Projekt ==== |
| cf+<nowiki>http://container_name</nowiki>
| | ==== Weblinks ==== |
| imap[s]://user[:password]@host.com[/from_address_prefix]
| |
| rsync://user[:password]@other.host[:port]::/module/some_dir
| |
| rsync over ssh (only keyauth)
| |
| rsync://user@other.host[:port]/relative_path
| |
| rsync://user@other.host[:port]//absolute_path
| |
| for the s3 user/password are AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY
| |
| s3://[user:password]@host/bucket_name[/prefix]
| |
| s3+http://[user:password]@bucket_name[/prefix]
| |
| scp and sftp are aliases for the ssh backend
| |
| ssh://user</nowiki>[:password]@other.host[:port]/some_dir
| |
| tahoe://alias/directory
| |
| webdav[s]://user[:password]@other.host/some_dir
| |
| | |
| '''Hinweis'''
| |
| Sonderzeichen müssen [https://de.wikipedia.org/wiki/URL-Encoding urlencoded] eingetragen werden, außer bei den Parametern '''TARGET_USER, TARGET_PASS'''
| |
| | |
| ====Ziel des Backups festlegen==== | |
| TARGET='scheme://user[:password]@host[:port]/[/]path'
| |
| | |
| *Es soll das Protokoll '''ssh''' zur Datenübertragung genutzt werden.
| |
| *Username: '''user'''
| |
| *Passwort: '''KohlIstKrempe969'''
| |
| *Host: '''foxtom.net'''
| |
| *Port: '''22'''
| |
| *Pfad: '''home/user/backup_PC1'''
| |
| | |
| TARGET='<nowiki>ssh://user:KohlIstKrempe969@foxtom.net:22/home/user/backup_PC1</nowiki>'
| |
| | |
| ====Quelle des Backups festlegen==== | |
| Root-Verzeichnis für das Backup setzen.
| |
| SOURCE=
| |
| | |
| Soll ein Backup aus mehreren Unterordnern von '''/''' bestehen (Bsp.: /etc /var /home sollen gesichert werden), so muss die SOURCE Variable auf '''/''' gesetzt werden.''
| |
| SOURCE='/'
| |
| | |
| In der Regel wird SOURCE='/' gesetzt.
| |
| | |
| Dateien, die in die Sicherung aufgenommen oder von ihr ausgeschlossen werden, werden in der Datei [[Backup:duply#exclude|'''exclude''']] angegeben.
| |
| | |
| ===Maximales Alter eines Backups festlegen===
| |
| Hier ist anzumerken, dass duply keine Backups löscht, sofern man es nicht anfordert.
| |
| | |
| Mit '''MAX_AGE''' wird das maximale Alter von Backups bestimmt.
| |
| Das älteste Backup soll maximal ein Jahr alt sein.
| |
| MAX_AGE=1Y
| |
| | |
| ===Anzahl der vollständigen Backups festlegen===
| |
| Mit '''MAX_FULL_BACKUPS''' kann bestimmt werden, wie viele Full-Backups duply maximal behält.
| |
| | |
| Es sollen fünf sein.
| |
| MAX_FULL_BACKUPS=5
| |
| | |
| ===Maximales Alter der vollständigen Backups festlegen===
| |
| Alternativ kann mit '''MAX_FULLBKP_AGE''' spezifiert werden, wie alt ein Full-Backup sein darf, bevor ein neues Full-Backup erstellt wird.
| |
| | |
| Es soll zwei Wochen alt sein.
| |
| MAX_FULLBKP_AGE=2W
| |
| DUPL_PARAMS="$DUPL_PARAMS --full-if-older-than $MAX_FULLBKP_AGE"
| |
| | |
| === Größe der Backup-Pakete bei der Übertragung ändern ===
| |
| | |
| Um den durch eventuelle Übertragungsfehler entstehenden Zeitverlust einzuschränken, teilt duply standardmäßig seine Backups in 25 MB große Dateien.
| |
| | |
| Dies kann mit '''VOLSIZE''' geändert werden.
| |
| | |
| Backup-Pakete sollen 10 MB groß sein.
| |
| | |
| VOLSIZE=10
| |
| DUPL_PARAMS="$DUPL_PARAMS --volsize $VOLSIZE"
| |
| | |
| == Dateien ==
| |
| | |
| = Anwendungen =
| |
| === Anwendung ===
| |
| '''GPG_KEY='C676563899DE35FA''''
| |
| '''GPG_PW='NerzManta9''''
| |
| '''GPG_OPTS='--compress-algo=bzip2 --personal-cipher-preferences AES256''''
| |
| '''GPG_TEST='disabled''''
| |
| '''TARGET='<nowiki>ssh://user:KohlIstKrempe969@foxtom.net:22/home/user/backup_PC1</nowiki>''''
| |
| '''SOURCE='/''''
| |
| '''MAX_AGE=1Y'''
| |
| '''MAX_FULL_BACKUPS=5'''
| |
| '''MAX_FULLBKP_AGE=2W'''
| |
| '''DUPL_PARAMS="$DUPL_PARAMS --full-if-older-than $MAX_FULLBKP_AGE"'''
| |
| '''VOLSIZE=10'''
| |
| '''DUPL_PARAMS="$DUPL_PARAMS --volsize $VOLSIZE"'''
| |
| | |
| ==Pre- und Post-Skripte==
| |
| * duply erlaubt die Verwendung von Pre- und Post-Skripten.
| |
| * Das pre-Skript wird direkt vor dem Backup ausgeführt, das post-Skript direkt nach dem Backup.
| |
| * Mit diesen Skripten können beispielsweise Snapshots von LVM-Volumes oder Dumps von SQL Datenbanken gemacht und in das Backup einbezogen werden.
| |
| * Die files <tt>pre</tt> und <tt>post</tt> müssen im jeweiligen duply Verzeichnis liegen (Bsp.: /home/user/.duply/backup/) und ausführbar sein.
| |
| * Werden die pre/post Scripte nicht wie erhofft ausgeführt (z.B. bei den Sicherchungs-Methoden "full/incr"), können diese explizit angegeben werden: <tt>pre_incr_post</tt>
| |
| | |
| ; Beispiel
| |
| Hier ein Beispiel für ein PRE/POST Skript welches vor dem Backup einen SQL-Dump aller Datenbanken erstellt und diesen nach dem Backup wieder löscht.
| |
| | |
| ; pre-Datei
| |
| /usr/bin/mysqldump --all-databases -u root -ppw> /tmp/sqldump-$(date '+%F')
| |
| | |
| ; post-Datei
| |
| /bin/rm /tmp/sqldump-$(date '+%F')
| |
| | |
| ==exclude==
| |
| * duply arbeitet standardmäßig mit einer Whitelist.
| |
| * Um gewisse Verzeichnisse oder Dateien von einem Backup zu inkludieren muss die Datei <tt>exclude</tt> im duply Verzeichnis erstellt werden.
| |
| * Die Syntax erlaubt das Hinzufügen von Verzeichnissen und Dateien mit einem <tt>+ /pfad/zur/datei</tt>.
| |
| * Um ein Verzeichnis zu exkludieren muss in der <tt>exclude</tt> ein <tt>- /pfad/zum/Verzeichnis</tt> eingefügt werden.
| |
| * Zudem erlaubt duply die Verwendung von Wildcards.
| |
| * Die hier dargestellte <tt>exclude</tt> Datei sichert die Verzeichnisse <tt>/etc/, /root/, /var/www/</tt> und exkludiert alle anderen Verzeichnisse.
| |
| + /etc/
| |
| + /root/
| |
| + /var/www/
| |
| - **
| |
| | |
| == Parameter ==
| |
| * duply bietet eine Vielzahl von Kommandozeilenparametern für die Sicherung und Wiederherstellung von Daten.
| |
| * Die gesamte Liste ist in der Manpage von duply zu finden.
| |
| * Beim Einsatz von mehreren Parameter werden diese durch einen Unterstrich ('''_''') getrennt.
| |
| * Mit <tt>/usr/bin/duply /root/.duply/test full_verify_purge --force</tt> wird ein volles Backup erstellt, verifiziert und alte Backups gelöscht.
| |
| * Backups welche die <tt>MAX_AGE</tt> überschritten haben werden mit <tt>purge</tt> angezeigt und durch die zusätzliche Option <tt>--force</tt> gelöscht.
| |
| * Der Befehl <tt>/usr/bin/duply /root/.duply/test incr</tt> führt ein inkrementelles Backup aus.
| |
| | |
| ==cronjob==
| |
| * Bei duply handelt es sich nicht um einen Dienst (Daemon), sondern um ein Skript, das z.B. regelmäßig via Cron ausgeführt werden kann.
| |
| | |
| ; Beispiel
| |
| 0 0 * * 7 /usr/bin/duply /root/.duply/test full_verify_purge --force
| |
| 0 0 * * 1-6 /usr/bin/duply /root/.duply/test incr
| |
| | |
| * In dieser Konfiguration wird Sonntags um 0:00 ein Full-Backup erstellt und alte Backups gelöscht.
| |
| * Montag bis Samstag wird jeden Tag ein inkrementelles Backup durchgeführt.
| |
| * Neue cronjobs können mit '''crontab -e''' erstellt werden.
| |
| * Kommandos und Konfigurationsdateien müssen mit absolutem Pfad angegeben werden.
| |
| | |
| = Fehlerbehebung =
| |
| == Volume was signed by key ''X'' not ''Y'' ==
| |
| | |
| = Sicherheit =
| |
| = Dokumentation =
| |
| == RFC ==
| |
| == Man-Pages ==
| |
| == Info-Pages ==
| |
| == Projekt-Homepage == | |
| | |
| = Links = | |
| == Siehe auch == | |
| # [[GPG]]
| |
| # [[GPG-Agent]]
| |
| # [[pinentry-curses]]
| |
| | |
| == Weblinks == | |
| # [https://www.thomas-krenn.com/de/wiki/Backup_unter_Linux_mit_duply https://www.thomas-krenn.com/de/wiki/Backup_unter_Linux_mit_duply] | | # [https://www.thomas-krenn.com/de/wiki/Backup_unter_Linux_mit_duply https://www.thomas-krenn.com/de/wiki/Backup_unter_Linux_mit_duply] |
| # [https://wiki.archlinux.org/index.php/Duply#Configuration https://wiki.archlinux.org/index.php/Duply#Configuration] | | # [https://wiki.archlinux.org/index.php/Duply#Configuration https://wiki.archlinux.org/index.php/Duply#Configuration] |
| # [https://www.gnupg.org/howtos/de/GPGMiniHowto.html https://www.gnupg.org/howtos/de/GPGMiniHowto.html] | | # [https://www.gnupg.org/howtos/de/GnuPGMiniHowto.html https://www.gnupg.org/howtos/de/GnuPGMiniHowto.html] |
| # [http://duply.net/ duply.net] | | # [https://duply.net/ duply.net] |
|
| |
|
| == Einzelnachweise ==
| | [[Kategorie:duply]] |
| <references />
| |
|
| |
|
| = Testfragen =
| | {{DISPLAYTITLE:duply}} |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 1''
| |
| <div class="mw-collapsible-content">'''Antwort1'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 2''
| |
| <div class="mw-collapsible-content">'''Antwort2'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 3''
| |
| <div class="mw-collapsible-content">'''Antwort3'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 4''
| |
| <div class="mw-collapsible-content">'''Antwort4'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 5''
| |
| <div class="mw-collapsible-content">'''Antwort5'''</div>
| |
| </div>
| |
|
| |
|
| [[Kategorie:Backup]]
| | </noinclude> |
| [[Kategorie:Linux:Befehl]] | | [[Kategorie:Linux/Befehl]] |