Duply: Unterschied zwischen den Versionen

Aus Foxwiki
Wechseln zu:Navigation, Suche
K Dirkwagner verschob die Seite Linux:Befehl:duply nach Duply, ohne dabei eine Weiterleitung anzulegen: Textersetzung - „Linux:Befehl:“ durch „“
K Textersetzung - „ options"“ durch „ col1bold col1nowrap"“
 
(192 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''duply''' ist Programm zur Erstellung von inkrementellen, verschlüsselten Backups auf Dateiebene.
'''duply''' - [[Inkrementell]]e [[verschlüsselt]]e [[Backup]]s


= Beschreibung =
== Beschreibung ==
* Frontend von [https://de.wikipedia.org/wiki/Duplicity_(Software) duplicity].
; Frontend für [[duplicity]]
* Backups können lokal oder einem anderen System gespeichert werden.
Vereinfacht die Ausführung von Duplicity
* Unterstützte Protokolle: <tt>ftp, ssh, s3, rsync, cifs, webdav, http</tt>.
* Verwendung von [[duplicity]] vereinfachen
* Einstellungen in Profilen verwalten
* Alle duplicity-Backends werden unterstützt
* Stapelverarbeitung
** Ausführung von mehreren Befehlen als Stapelverarbeitung
** Damit sind einzeilige cron-Einträge möglich
** der Benutzer kann Skripte verwenden, die vor oder nach dem Backup ausgeführt werden
* Backups können lokal oder einem anderen System gespeichert werden
* Cron oder Kommandozeile
* Speichert Einstellungen in Profilen
* Batch-Operationen
*: 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


=Installation=
Für jeden Sicherungsauftrag wird ein Konfigurationsprofil erstellt
# apt install duply


= Konfiguration =
== Profilordner ==
== Verschlüsselung konfigurieren ==
<syntaxhighlight lang="bash" highlight="1" line copy>
=== Schlüssel erstellen ===
~/.duply/<profile>
siehe [[Sicherheit:Verschlüsselung:GPG#Schl.C3.BCssel_erstellen|Sicherheit:Verschlüsselung:GPG]]
</syntaxhighlight>


== Profil erstellen ==
; Hinweis
# duply <backupname> create
: Wenn der Ordner '/etc/duply' existiert, werden die Profile für den Superuser Benutzer root dort gesucht und erstellt werden


Ein duply-Profil wird im Home-Verzeichnis des Benutzers unter '''~/.duply/''' angelegt und besteht aus den folgenden Dateien:
== Protokolle ==
* gpg-key.asc (nur wenn ein gpg-key exportiert wurde.)
{| class="table table-striped table-hover col1bold col1nowrap"
* conf
! Protokoll !! Beschreibung
* pre und post
|-
* exclude
| [[ftp]] ||
|-
| [[ssh]] ||
|-
| [[s3]] ||
|-
| [[rsync]] ||
|-
| [[cifs]] ||
|-
| [[webdav]] ||
|-
| [[http]] ||
|}


== Konfiguration ==
== Installation ==
=== Verschlüsselung einrichten===
<syntaxhighlight lang="bash" highlight="1" copy>
====Voraussetzung====
sudo apt install duply
Key-ID und das Passwort des GPG-Keys müssen dafür hinterlegt werden.
</syntaxhighlight>


  GPG_KEY='_GPG_KEY_ID_'  
=== Dateien ===
  GPG_PW='_GPG_PASSWORD_'
└── usr
├── 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


====Key-ID anzeigen lassen====
== Anhang ==
Private-Key
=== Siehe auch ===
gpg --list-secret-keys --keyid-format LONG
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
----
* [[GnuPG]]
* [[GnuPG-Agent]]
* [[pinentry-curses]]
* [[duplicity]]


Konsole
=== Dokumentation ===
# gpg --list-secret-keys --keyid-format LONG
=== Links ===
gpg: "Trust-DB" wird überprüft
==== Projekt ====
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
==== Weblinks ====
gpg: Tiefe: 0  gültig:  1  signiert:  0  Vertrauen: 0-, 0q, 0n, 0m,  0f, 1u
# [https://www.thomas-krenn.com/de/wiki/Backup_unter_Linux_mit_duply https://www.thomas-krenn.com/de/wiki/Backup_unter_Linux_mit_duply]
gpg: nächste "Trust-DB"-Pflichtüberprüfung am 2021-11-04
# [https://wiki.archlinux.org/index.php/Duply#Configuration https://wiki.archlinux.org/index.php/Duply#Configuration]
/root/.gnupg/pubring.kbx
# [https://www.gnupg.org/howtos/de/GnuPGMiniHowto.html https://www.gnupg.org/howtos/de/GnuPGMiniHowto.html]
------------------------
# [https://duply.net/ duply.net]
sec  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>
ssb  rsa4096/B2E20485FF7FC772 2020-11-04 [E] [verfällt: 2021-11-04]
Public-Key
# gpg --list-keys --keyid-format LONG


Konsole
[[Kategorie:duply]]
# 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===
{{DISPLAYTITLE:duply}}
Zusätzlich können in '''GPG_OPTS=''' weitere Optionen zur Kompression und Art der Verschlüsselung gesetzt werden.
*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.
GPG_OPTS='--compress-algo=bzip2 --personal-cipher-preferences AES256'


=== De-/Aktivieren der Überprüfung GPG-Key und GPG-Passphrase ===
</noinclude>
* duply prüft vor jeder Aktion ob der GPG-Key gültig ist und die Passphrase korrekt ist.
[[Kategorie:Linux/Befehl]]
* Dies kann durch die Option '''GPG_TEST='disabled'''' unterbunden werden.
 
Aktiviert
GPG_TEST='disabled'
 
Deaktiviert
# GPG_TEST='disabled'
 
===Ziel und Quelle des Backups festlegen===
====Allgemeine Syntax des hosts====
scheme://[user:password@]host[:port]/[/]path
 
====Protokolle und Syntax zur Datenübertragung====
duply versteht alle gängigen Protokolle zur Datenübertragung.
 
In der conf-Datei befindet sich meistens eine Liste der wichtigsten unterstützten Protokolle und deren Syntax.
 
#  file://[/absolute_]path
#  ftp[s]://user[:password]@other.host[:port]/some_dir
#  hsi://user[:password]@other.host/some_dir
#  cf+<nowiki>http://container_name</nowiki>
#  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
#  <nowiki>ssh://user</nowiki>[:password]@other.host[:port]/some_dir
#  tahoe://alias/directory
#  webdav[s]://user[:password]@other.host/some_dir
 
Hier ist anzumerken, dass Sonderzeichen [https://de.wikipedia.org/wiki/URL-Encoding urlencoded] eingetragen werden müssen, außer sie werden in den Parametern '''TARGET_USER, TARGET_PASS''' eingetragen.
 
====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 [[Sicherheit: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"
 
=== 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.
 
Eine Beispielhafte cronjob-Konfiguration wäre:
 
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.
 
Hier ist anzumerken, dass für alle Kommandos und Konfigurationsdateien der absolute Pfad angegeben werden muss.
 
= Fehlerbehebung =
== Volume was signed by key ''X'' not ''Y'' ==
 
=Weitere Informationen=
*[[Sicherheit:Verschlüsselung:GPG]]
*[[Sicherheit:Verschlüsselung:GPG-Agent]]
*[[Sicherheit:pinentry-curses]]
 
=Quellen=
 
*[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://www.gnupg.org/howtos/de/GPGMiniHowto.html https://www.gnupg.org/howtos/de/GPGMiniHowto.html]
*[http://duply.net/ duply.net]
 
[[Category:Sicherheit:Backup]]
[[Category:Informationssicherheit]]
[[Category:Linux:Befehl]]
[[Category:Linux:Backup]]

Aktuelle Version vom 22. September 2026, 20:08 Uhr

duply - Inkrementelle verschlüsselte Backups

Beschreibung

Frontend für duplicity

Vereinfacht die Ausführung von Duplicity

  • Verwendung von duplicity vereinfachen
  • Einstellungen in Profilen verwalten
  • Alle duplicity-Backends werden unterstützt
  • Stapelverarbeitung
    • Ausführung von mehreren Befehlen als Stapelverarbeitung
    • Damit sind einzeilige cron-Einträge möglich
    • der Benutzer kann Skripte verwenden, die vor oder nach dem Backup ausgeführt werden
  • Backups können lokal oder einem anderen System gespeichert werden
  • Cron oder Kommandozeile
  • Speichert Einstellungen in Profilen
  • Batch-Operationen
    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

Für jeden Sicherungsauftrag wird ein Konfigurationsprofil erstellt

Profilordner

~/.duply/<profile>
Hinweis
Wenn der Ordner '/etc/duply' existiert, werden die Profile für den Superuser Benutzer root dort gesucht und erstellt werden

Protokolle

Protokoll Beschreibung
ftp
ssh
s3
rsync
cifs
webdav
http

Installation

sudo apt install duply

Dateien

└── usr
├── 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

Anhang

Siehe auch


Dokumentation

Projekt

  1. https://www.thomas-krenn.com/de/wiki/Backup_unter_Linux_mit_duply
  2. https://wiki.archlinux.org/index.php/Duply#Configuration
  3. https://www.gnupg.org/howtos/de/GnuPGMiniHowto.html
  4. duply.net