Duply: Unterschied zwischen den Versionen

Aus Foxwiki
Wechseln zu:Navigation, Suche
Robertquies (Diskussion | Beiträge)
K Textersetzung - „ options"“ durch „ col1bold col1nowrap"“
 
(362 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Ein einfaches Python-Script zur Erstellung von inkrementellen, symmetrisch verschlüsselten Backups auf Dateiebene.
'''duply''' - [[Inkrementell]]e [[verschlüsselt]]e [[Backup]]s


=Eigenschaften=
== Beschreibung ==
* Ist ein Frontend von [https://de.wikipedia.org/wiki/Duplicity_(Software) duplicity].
; Frontend für [[duplicity]]
* Erstellte Backups können sowohl lokal am gesicherten Rechner, als auch entfernt (remote) auf einem anderen System gespeichert werden.
Vereinfacht die Ausführung von Duplicity
* Unterstützt <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 ==
<syntaxhighlight lang="bash" highlight="1" line copy>
~/.duply/<profile>
</syntaxhighlight>


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


# duply <backupname> create
== Protokolle ==
{| class="table table-striped table-hover col1bold col1nowrap"
! Protokoll !! Beschreibung
|-
| [[ftp]] ||
|-
| [[ssh]] ||
|-
| [[s3]] ||
|-
| [[rsync]] ||
|-
| [[cifs]] ||
|-
| [[webdav]] ||
|-
| [[http]] ||
|}


Ein duply-Profil wird im Home-Verzeichnis des Benutzers unter '''~/.duply/''' automatisch angelegt und besteht aus den folgenden Dateien:
== Installation ==
* conf
<syntaxhighlight lang="bash" highlight="1" copy>
* exclude
sudo apt install duply
* post
</syntaxhighlight>
* pre
* gpg-key.asc (Optional, nur wenn ein gpg-key exportiert wurde.)


==GPG-Key erstellen==
=== Dateien ===
Während der Erstellung des Keys ist es ratsam andere Arbeiten auf dem Host durchzuführen, um die Entropie am System zu erhöhen, z.B. durch schnelles Bewegen der Maus und/oder das Eintippen auf der Tastatur.
└── usr
   
├── bin
Dies beschleunigt das Erstellen des Keys, weil dem Host schneller Zufallswerte (Random) zur Verfügung stehen, die für das Erstellen des Keys benötigt werden.  
│   └── 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


gpg --gen-key
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
----
* [[GnuPG]]
* [[GnuPG-Agent]]
* [[pinentry-curses]]
* [[duplicity]]


gpg (GnuPG) 1.4.11; Copyright (C) 2010 Free Software Foundation, Inc.
=== Dokumentation ===
This is free software: you are free to change and redistribute it.
=== Links ===
There is NO WARRANTY, to the extent permitted by law.
==== Projekt ====
==== Weblinks ====
Please select what kind of key you want:
# [https://www.thomas-krenn.com/de/wiki/Backup_unter_Linux_mit_duply https://www.thomas-krenn.com/de/wiki/Backup_unter_Linux_mit_duply]
    (1) RSA and RSA (default)
# [https://wiki.archlinux.org/index.php/Duply#Configuration https://wiki.archlinux.org/index.php/Duply#Configuration]
    (2) DSA and Elgamal
# [https://www.gnupg.org/howtos/de/GnuPGMiniHowto.html https://www.gnupg.org/howtos/de/GnuPGMiniHowto.html]
    (3) DSA (sign only)
# [https://duply.net/ duply.net]
    (4) RSA (sign only)
Your selection? '''1'''
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) '''4096'''
Requested keysize is 4096 bits
Please specify how long the key should be valid.
          0 = key does not expire
      <n>  <nowiki>= key expires in n days</nowiki>
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? '''(0)'''
Key does not expire at all
Is this correct? (y/N) '''y'''
You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
    '''"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"'''
Real name: '''Example User'''
Email address: '''email@example.com'''
Comment: '''Example Comment'''
You selected this USER-ID: '''"Example User <email@example.com>"'''
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? '''O'''
You need a Passphrase to protect your secret key.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 253 more bytes)
'''..........+++++'''
gpg: key 9627014B marked as ultimately trusted
public and secret key created and signed.
gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:  2  signed:  0  trust: 0-, 0q, 0n, 0m, 0f, 2u
pub  4096R/9627014B 2013-06-07
      Key fingerprint = 705D B57E 8526 FB24 360E  E54D 13A1 AC6B 9627 014B
uid                  Example User <email@example.com>
sub  4096R/DB7D5661 2013-06-07


==conf-Datei==
[[Kategorie:duply]]


===Aufrufen der conf-Datei===
{{DISPLAYTITLE:duply}}


Hier unter /root/.duply/backup/conf.
</noinclude>
 
[[Kategorie:Linux/Befehl]]
# vi /root/.duply/backup/conf
 
===Symmetrische Verschlüsselung einrichten===
 
Key-ID und das Passwort des GPG-Keys müssen dafür hinterlegt werden.
 
Hier lautet die Key-ID '''9627014B'''.
 
pub  4096R/'''9627014B''' 2013-06-07
      Key fingerprint = 705D B57E 8526 FB24 360E  E54D 13A1 AC6B 9627 014B
uid                  Example User <email@example.com>
sub  4096R/DB7D5661 2013-06-07
 
GPG_KEY='_KEY_ID_'
GPG_PW='_GPG_PASSWORD_'
 
===Kompression und Art der Verschlüsselung festlegen===
 
Zusätzlich können in '''GPG_OPTS=''' weitere Optionen zur Kompression und Art der Verschlüsselung gesetzt werden.
 
GPG_OPTS='--compress-algo=bzip2 --personal-cipher-preferences AES256,AES192'
 
duply prüft vor jeder Aktion ob der GPG-Key gültig ist und die Passphrase korrekt ist.
 
Dies kann durch die Option <tt>GPG_TEST='disabled'</tt> unterbunden werden.
 
<nowiki>#GPG_TEST='disabled'</nowiki>
 
Der nächste Schritt ist die Auswahl des Zieles des Backups. duply versteht alle gängigen Protokolle zur Übertragung von Daten.
 
Die Syntax des hosts ist wie folgt:
 
scheme://[user:password@]host[:port]/[/]path
 
In der conf-Datei befindet sich eine Liste der unterstützten Protokolle und deren Syntax.
 
<nowiki># </nowiki>  file://[/absolute_]path
<nowiki># </nowiki>  ftp[s]://user[:password]@other.host[:port]/some_dir
<nowiki># </nowiki> hsi://user[:password]@other.host/some_dir
<nowiki># </nowiki>  cf+<nowiki>http://container_name</nowiki>
<nowiki># </nowiki>  imap[s]://user[:password]@host.com[/from_address_prefix]
<nowiki># </nowiki>  rsync://user[:password]@other.host[:port]::/module/some_dir
<nowiki># </nowiki>  <nowiki># rsync over ssh (only keyauth)</nowiki>
<nowiki># </nowiki>  rsync://user@other.host[:port]/relative_path
<nowiki># </nowiki>  rsync://user@other.host[:port]//absolute_path
<nowiki># </nowiki>  <nowiki># for the s3 user/password are AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY</nowiki>
<nowiki># </nowiki>  s3://[user:password]@host/bucket_name[/prefix]
<nowiki># </nowiki>  s3+http://[user:password]@bucket_name[/prefix]
<nowiki># </nowiki>  <nowiki># scp and sftp are aliases for the ssh backend</nowiki>
<nowiki># </nowiki>  <nowiki>ssh://user</nowiki>[:password]@other.host[:port]/some_dir
<nowiki># </nowiki>  tahoe://alias/directory
<nowiki># </nowiki>  webdav[s]://user[:password]@other.host/some_dir
 
Hier ist anzumerken das Sonderzeichen urlencoded eingetragen werden müssen außer sie werden in den Parametern <tt>TARGET_USER, TARGET_PASS</tt> eingetragen.
 
TARGET='scheme://user[:password]@host[:port]/[/]path'
 
Als nächstes kann mit der Option <tt>SOURCE=</tt> ''das Root-Verzeichnis für das Backup gesetzt werden.
 
Soll ein Backup aus mehreren Unterordnern von '''/''' bestehen (Bsp.: /etc /var /home sollen gesichert werden), so muss die SOURCE Variable auf '''/''' gesetzt werden.''
 
SOURCE='/'
 
Die Folgenden Parameter kontrollieren das maximale Alter und die Anzahl der vollständigen Backups die duply behalten soll.
 
Hier ist anzumerken, dass duply keine Backups löscht, sofern man es nicht anfordert.
 
Mit <tt>MAX_AGE</tt> wird das maximale Alter von Backups bestimmt.
 
MAX_AGE=1Y
 
Mit <tt>MAX_FULL_BACKUPS</tt> kann bestimmt werden wieviele Full-Backups duply maximal behält.
 
MAX_FULL_BACKUPS=5
 
Alternativ kann mit <tt>MAX_FULLBKP_AGE</tt> spezifiert werden, wie alt ein Full-Backup sein darf, bevor ein neues Full-Backup erstellt wird.
 
MAX_FULLBKP_AGE=2W
DUPL_PARAMS="$DUPL_PARAMS --full-if-older-than $MAX_FULLBKP_AGE "
 
Um den durch eventuelle Übertragungsfehler entstehenden Zeitverlust einzuschränken teilt duply standardmäßig seine Backups in 25 MB große Dateien.
 
Dies kann mit dem <tt>VOLSIZE</tt> Parameter geändert werden.
 
VOLSIZE=10
DUPL_PARAMS="$DUPL_PARAMS --volsize $VOLSIZE "
 
Weiter lassen sich noch optionale Parameter wie VERBOSITY und TEMP_DIR setzen.
 
==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/
- **
 
==duply-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.
 
=Weitere Informationen=
 
* [http://duply.net/ duply] (duply.net)
 
=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://duply.net/duply_(simple_duplicity) https://duply.net/duply_(simple_duplicity)]

Aktuelle Version vom 22. September 2026, 21: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