Hetzner - DokuWiki

Tartarus Backup-Konfiguration
Zeile 2: Zeile 2:
 
[http://wertarbyte.de/tartarus.shtml Tartarus] ist ein Bash-Skript, das zur Installation einfach von der Website heruntergeladen und nach /usr/local/sbin/ kopiert wird:
 
[http://wertarbyte.de/tartarus.shtml Tartarus] ist ein Bash-Skript, das zur Installation einfach von der Website heruntergeladen und nach /usr/local/sbin/ kopiert wird:
  
  wget -O /usr/local/sbin/tartarus.sh http://wertarbyte.de/tartarus/current/tartarus.sh
+
wget -O /usr/local/sbin/tartarus.sh http://wertarbyte.de/tartarus/current/tartarus.sh
  chmod +x /usr/local/sbin/tartarus.sh
+
chmod +x /usr/local/sbin/tartarus.sh
  
 
Das Skript bedient sich einer Vielzahl klassischer Unix-Werkzeuge, die über die Paketverwaltung installiert werden:
 
Das Skript bedient sich einer Vielzahl klassischer Unix-Werkzeuge, die über die Paketverwaltung installiert werden:
  
  apt-get install tar bzip2 lvm2 gnupg curl
+
apt-get install tar bzip2 lvm2 gnupg curl
  
 
== Backup-Konfiguration ==
 
== Backup-Konfiguration ==
Zeile 15: Zeile 15:
 
=== Allgemeine Einstellungen ===
 
=== Allgemeine Einstellungen ===
  
  # /etc/tartarus/generic.inc
+
# /etc/tartarus/generic.inc
  # Generische Einstellungen für die Sicherung
+
# Generische Einstellungen für die Sicherung
  # auf den Hetzner-FTP-Server
+
# auf den Hetzner-FTP-Server
  STORAGE_METHOD="FTP"
+
STORAGE_METHOD="FTP"
  # Adresse des FTP-Server
+
# Adresse des FTP-Server
  STORAGE_FTP_SERVER="1.2.3.4"
+
STORAGE_FTP_SERVER="1.2.3.4"
  # FTP-Zugangsdaten
+
# FTP-Zugangsdaten
  STORAGE_FTP_USER="12345"
+
STORAGE_FTP_USER="12345"
  STORAGE_FTP_PASSWORD="SecretPassword"
+
STORAGE_FTP_PASSWORD="SecretPassword"
  # Übertragung verschlüsseln
+
# Übertragung verschlüsseln
  STORAGE_FTP_USE_SSL="yes"
+
STORAGE_FTP_USE_SSL="yes"
  # Zertifikat akzeptieren
+
# Zertifikat akzeptieren
  STORAGE_FTP_SSL_INSECURE="yes"
+
STORAGE_FTP_SSL_INSECURE="yes"
 
+
  # Kompression
+
# Kompression
  COMPRESSION_METHOD="bzip2"
+
COMPRESSION_METHOD="bzip2"
  # Größe des LVM-Snapshots
+
# Größe des LVM-Snapshots
  LVM_SNAPSHOT_SIZE="1000M"
+
LVM_SNAPSHOT_SIZE="1000M"
 
+
  # Backup-Daten symmetrisch verschlüsseln
+
# Backup-Daten symmetrisch verschlüsseln
  ENCRYPT_SYMMETRICALLY="yes"
+
ENCRYPT_SYMMETRICALLY="yes"
  # Passwort aus /etc/tartarus/backup.sec lesen
+
# Passwort aus /etc/tartarus/backup.sec lesen
  ENCRYPT_PASSPHRASE_FILE="/etc/tartarus/backup.sec"
+
ENCRYPT_PASSPHRASE_FILE="/etc/tartarus/backup.sec"
 
+
  # Während der Erstellung der Sicherung nicht über
+
# Während der Erstellung der Sicherung nicht über
  # Dateisystemgrenzen hinausgehen
+
# Dateisystemgrenzen hinausgehen
  STAY_IN_FILESYSTEM="yes"
+
STAY_IN_FILESYSTEM="yes"
  
 
Diese Einstellungen verschlüsseln Sicherungen mit einem Passwort, das aus der Datei /etc/tartarus/backup.sec gelesen wird. Der Inhalt dieser Datei ist erforderlich, um die Archive später wieder entpacken zu können; er sollte daher sicher (evtl. in ausgedruckter Form) verwahrt werden.
 
Diese Einstellungen verschlüsseln Sicherungen mit einem Passwort, das aus der Datei /etc/tartarus/backup.sec gelesen wird. Der Inhalt dieser Datei ist erforderlich, um die Archive später wieder entpacken zu können; er sollte daher sicher (evtl. in ausgedruckter Form) verwahrt werden.
Zeile 49: Zeile 49:
 
Ein einfaches Profil zur Sicherung des Root-Dateisystems (/) könnte folgendermaßen aussehen:
 
Ein einfaches Profil zur Sicherung des Root-Dateisystems (/) könnte folgendermaßen aussehen:
  
  # /etc/tartarus/root.conf
+
# /etc/tartarus/root.conf
  #
+
#
  # Allgemeine Einstellungen einlesen
+
# Allgemeine Einstellungen einlesen
  source /etc/tartarus/generic.inc
+
source /etc/tartarus/generic.inc
  # Name des Sicherungsprofils
+
# Name des Sicherungsprofils
  NAME="root"
+
NAME="root"
  # Verzeichnis / sichern
+
# Verzeichnis / sichern
  DIRECTORY="/"
+
DIRECTORY="/"
  # Keine temporären Dateien sichern
+
# Keine temporären Dateien sichern
  EXCLUDE="/tmp/"
+
EXCLUDE="/tmp/"
  # keinen LVM-Snapshot erstellen
+
# keinen LVM-Snapshot erstellen
  CREATE_LVM_SNAPSHOT="no"
+
CREATE_LVM_SNAPSHOT="no"
  
 
Die Sicherung lässt sich einfach durch folgenden Aufruf starten:
 
Die Sicherung lässt sich einfach durch folgenden Aufruf starten:
  
  /usr/local/sbin/tartarus.sh /etc/tartarus/root.conf
+
/usr/local/sbin/tartarus.sh /etc/tartarus/root.conf
  
 
=== Sicherung mit LVM-Snapshot ===
 
=== Sicherung mit LVM-Snapshot ===
Zeile 70: Zeile 70:
 
LVM-Snapshots erlauben es, das dem Dateisystem zu Grunde liegende LVM-Blockgerät im laufenden Betrieb einzufrieren. Dazu speichert das LVM-System die während des Betriebs anfallenden Änderungen in einem separaten Logical Volume.
 
LVM-Snapshots erlauben es, das dem Dateisystem zu Grunde liegende LVM-Blockgerät im laufenden Betrieb einzufrieren. Dazu speichert das LVM-System die während des Betriebs anfallenden Änderungen in einem separaten Logical Volume.
  
  # /etc/tartarus/home.conf
+
# /etc/tartarus/home.conf
  source /etc/tartarus/generic.inc
+
source /etc/tartarus/generic.inc
 
+
  NAME="home"
+
NAME="home"
  DIRECTORY="/home"
+
DIRECTORY="/home"
  # LVM-Snapshot erstellen
+
# LVM-Snapshot erstellen
  CREATE_LVM_SNAPSHOT="yes"
+
CREATE_LVM_SNAPSHOT="yes"
  # LVM-Volume, auf dem das Dateisystem gespeichert ist
+
# LVM-Volume, auf dem das Dateisystem gespeichert ist
  LVM_VOLUME_NAME="/dev/volumegroup/home"
+
LVM_VOLUME_NAME="/dev/volumegroup/home"
  # Mountpoint, in dem das Dateisystem eingehängt wird
+
# Mountpoint, in dem das Dateisystem eingehängt wird
  LVM_MOUNT_DIR="/home"
+
LVM_MOUNT_DIR="/home"
  
 
Um das Snapshot-Dateisystem einbinden zu können, benutzt Tartarus das Verzeichnis /snap: Die eingefrorenen Dateisysteme werden in den dazugehörigen Unterverzeichnissen eingeklinkt.
 
Um das Snapshot-Dateisystem einbinden zu können, benutzt Tartarus das Verzeichnis /snap: Die eingefrorenen Dateisysteme werden in den dazugehörigen Unterverzeichnissen eingeklinkt.
Zeile 88: Zeile 88:
 
Inkrementelle Sicherungen archivieren nicht das gesamte Dateisystem, sondern nur die Änderungen seit der letzten vollständigen Sicherung. Tartarus legt Markierungs-Dateien an, um den genauen Zeitpunkt der letzten Sicherung festzuhalten. Um inkrementelle Sicherungen durchzuführen, muss zunächst ein Verzeichnis angelegt werden, das diese Dateien enthält:
 
Inkrementelle Sicherungen archivieren nicht das gesamte Dateisystem, sondern nur die Änderungen seit der letzten vollständigen Sicherung. Tartarus legt Markierungs-Dateien an, um den genauen Zeitpunkt der letzten Sicherung festzuhalten. Um inkrementelle Sicherungen durchzuführen, muss zunächst ein Verzeichnis angelegt werden, das diese Dateien enthält:
  
  mkdir -p /var/spool/tartarus/timestamps/
+
mkdir -p /var/spool/tartarus/timestamps/
  
 
Die Konfigurationsprofile erhalten nun folgende Zeile (mit entsprechend angepasstem Dateiname):
 
Die Konfigurationsprofile erhalten nun folgende Zeile (mit entsprechend angepasstem Dateiname):
  
  INCREMENTAL_TIMESTAMP_FILE="/var/spool/tartarus/timestamps/home"
+
INCREMENTAL_TIMESTAMP_FILE="/var/spool/tartarus/timestamps/home"
  
 
Nach jeder erfolgreichen Sicherung aktualisiert das Skript diese Datei. Um eine inkrementelle Sicherung durchzuführen, startet man Tartarus mit dem zusätzlichen Parameter "-i":
 
Nach jeder erfolgreichen Sicherung aktualisiert das Skript diese Datei. Um eine inkrementelle Sicherung durchzuführen, startet man Tartarus mit dem zusätzlichen Parameter "-i":
  
  /usr/local/sbin/tartarus.sh -i /etc/tartarus/home.conf
+
/usr/local/sbin/tartarus.sh -i /etc/tartarus/home.conf
  
 
== Automatischer Aufruf ==
 
== Automatischer Aufruf ==
Zeile 102: Zeile 102:
 
Ein typisches System wird über mehrere Backup-Profile im Verzeichnis /etc/tartarus/ verfügen; um sie automatisch aufzurufen, bietet sich folgendes Hilfskript an:
 
Ein typisches System wird über mehrere Backup-Profile im Verzeichnis /etc/tartarus/ verfügen; um sie automatisch aufzurufen, bietet sich folgendes Hilfskript an:
  
  #!/bin/sh
+
#!/bin/sh
  # /usr/local/sbin/backup.sh
+
# /usr/local/sbin/backup.sh
  # Run all backup profile found in /etc/tartarus/ and pass
+
# Run all backup profile found in /etc/tartarus/ and pass
  # command line arguments on to tartarus (e.g. -i)
+
# command line arguments on to tartarus (e.g. -i)
  for profile in /etc/tartarus/*.conf; do
+
for profile in /etc/tartarus/*.conf; do
    /usr/local/sbin/tartarus.sh $* "$profile"
+
  /usr/local/sbin/tartarus.sh $* "$profile"
  done
+
done
  
 
Es lässt sich nun mit und ohne Parameter aufrufen, um alle Profile als vollständige oder inkrementelle Sicherung abzuarbeiten:
 
Es lässt sich nun mit und ohne Parameter aufrufen, um alle Profile als vollständige oder inkrementelle Sicherung abzuarbeiten:
  
  /usr/local/sbin/backup.sh # Vollsicherung
+
/usr/local/sbin/backup.sh # Vollsicherung
  
  /usr/local/sbin/backup.sh -i # Inkrementelle Sicherung
+
/usr/local/sbin/backup.sh -i # Inkrementelle Sicherung
  
 
Der Befehl "crontab -e" editiert die Crontab des Root-Benutzers:
 
Der Befehl "crontab -e" editiert die Crontab des Root-Benutzers:
  
  PATH=/bin/:/sbin/:/usr/bin/:/usr/sbin/:/usr/local/sbin/:/usr/local/bin
+
PATH=/bin/:/sbin/:/usr/bin/:/usr/sbin/:/usr/local/sbin/:/usr/local/bin
  # m    h      dom    mon    dow    command
+
# m    h      dom    mon    dow    command
  0      1      *      *      mon-sat /usr/local/sbin/backup.sh -i
+
0      1      *      *      mon-sat /usr/local/sbin/backup.sh -i
  0      1      *      *      sun    /usr/local/sbin/backup.sh
+
0      1      *      *      sun    /usr/local/sbin/backup.sh
  
 
Jeden Sonntag wird so um 1:00h nachts eine vollständige Sicherung gestartet; an den übrigen Tagen wird eine darauf basierende inkrementelle Sicherung erstellt.
 
Jeden Sonntag wird so um 1:00h nachts eine vollständige Sicherung gestartet; an den übrigen Tagen wird eine darauf basierende inkrementelle Sicherung erstellt.
Zeile 129: Zeile 129:
 
Da Tartarus auf einfachen Unix-Werkzeugen basiert, lässt sich eine Sicherung sehr einfach aus dem Rettungssystem wiederherstellen. Um die Dateien in einer  Sicherung anzuzeigen, genügt folgende Befehlszeile:
 
Da Tartarus auf einfachen Unix-Werkzeugen basiert, lässt sich eine Sicherung sehr einfach aus dem Rettungssystem wiederherstellen. Um die Dateien in einer  Sicherung anzuzeigen, genügt folgende Befehlszeile:
  
  curl ftp://USER:PASS@YOURSERVER/home-20080411-1349.tar.bz2.gpg | gpg --decrypt | tar tpvj
+
curl ftp://USER:PASS@YOURSERVER/home-20080411-1349.tar.bz2.gpg | gpg --decrypt | tar tpvj
  
 
Um das Archiv in das Verzeichnis /mnt/restore zu entpacken, wird die Zeile folgendermaßen modifiziert:
 
Um das Archiv in das Verzeichnis /mnt/restore zu entpacken, wird die Zeile folgendermaßen modifiziert:
  
  curl ftp://USER:PASS@YOURSERVER/home-20080411-1349.tar.bz2.gpg | gpg --decrypt | tar -C /mnt/restore xpvj
+
curl ftp://USER:PASS@YOURSERVER/home-20080411-1349.tar.bz2.gpg | gpg --decrypt | tar -C /mnt/restore xpvj
  
 
== Alte Sicherungen löschen ==
 
== Alte Sicherungen löschen ==
Zeile 139: Zeile 139:
 
Werden regelmäßig Sicherungen erstellt, gerät die Quota des FTP-Servers schnell an die Grenze - alte Sicherungen sollten daher regelmäßig entfernt werden. Dies erledigt das Skript "[http://wertarbyte.de/tartarus/current/charon.pl charon.pl]" automatisch: folgender Befehl überprüft alle Sicherungen namens "home" auf dem FTP-Server auf ihr "Haltbarkeitsdatum". Durch den Parameter "--dry-run" werden die Dateien nicht wirklich entfernt.
 
Werden regelmäßig Sicherungen erstellt, gerät die Quota des FTP-Servers schnell an die Grenze - alte Sicherungen sollten daher regelmäßig entfernt werden. Dies erledigt das Skript "[http://wertarbyte.de/tartarus/current/charon.pl charon.pl]" automatisch: folgender Befehl überprüft alle Sicherungen namens "home" auf dem FTP-Server auf ihr "Haltbarkeitsdatum". Durch den Parameter "--dry-run" werden die Dateien nicht wirklich entfernt.
  
  /usr/local/sbin/charon.pl --host 1.2.3.4 --user USERNAME --password PASSWORD --profile home --maxage 7 --dry-run
+
/usr/local/sbin/charon.pl --host 1.2.3.4 --user USERNAME --password PASSWORD --profile home --maxage 7 --dry-run
  
 
Charon würde alle Dateien, deren Erstellung länger als 7 Tage zurückliegt, entfernen. Dies passiert jedoch nur, wenn keine inkrementellen Sicherungen darauf basieren.
 
Charon würde alle Dateien, deren Erstellung länger als 7 Tage zurückliegt, entfernen. Dies passiert jedoch nur, wenn keine inkrementellen Sicherungen darauf basieren.
Zeile 145: Zeile 145:
 
Um nach einem erfolgreichen Backup den FTP-Server automatisch aufzuräumen, kann man einen Tartarus-Hook benutzen. Folgender Eintrag in den Tartarus-Einstellungen (z.B. generic.inc) überprüft nach jedem Backup-Lauf den Server auf abgelaufene Archive:
 
Um nach einem erfolgreichen Backup den FTP-Server automatisch aufzuräumen, kann man einen Tartarus-Hook benutzen. Folgender Eintrag in den Tartarus-Einstellungen (z.B. generic.inc) überprüft nach jedem Backup-Lauf den Server auf abgelaufene Archive:
  
  # FTP-Server nach der Sicherung aufräumen
+
# FTP-Server nach der Sicherung aufräumen
  TARTARUS_POST_PROCESS_HOOK() {
+
TARTARUS_POST_PROCESS_HOOK() {
      echo -n "$STORAGE_FTP_PASSWORD" | /usr/local/sbin/charon.pl --host "$STORAGE_FTP_SERVER" --user "$STORAGE_FTP_USER" --dir "$STORAGE_FTP_DIR" --readpassword --maxage 7 --profile "$NAME"
+
    echo -n "$STORAGE_FTP_PASSWORD" | /usr/local/sbin/charon.pl --host "$STORAGE_FTP_SERVER" --user "$STORAGE_FTP_USER" --dir "$STORAGE_FTP_DIR" --readpassword --maxage 7 --profile "$NAME"
  }
+
}
  
 
Das Skript übernimmt so die Einstellungen direkt aus der Tartarus-Konfiguration. Damit das Passwort nicht in der Prozessliste erscheint, wird es über die Standardeingabe eingelesen.
 
Das Skript übernimmt so die Einstellungen direkt aus der Tartarus-Konfiguration. Damit das Passwort nicht in der Prozessliste erscheint, wird es über die Standardeingabe eingelesen.

Version vom 25. November 2008, 09:46 Uhr

Inhaltsverzeichnis

Installation

Tartarus ist ein Bash-Skript, das zur Installation einfach von der Website heruntergeladen und nach /usr/local/sbin/ kopiert wird:

wget -O /usr/local/sbin/tartarus.sh http://wertarbyte.de/tartarus/current/tartarus.sh
chmod +x /usr/local/sbin/tartarus.sh

Das Skript bedient sich einer Vielzahl klassischer Unix-Werkzeuge, die über die Paketverwaltung installiert werden:

apt-get install tar bzip2 lvm2 gnupg curl

Backup-Konfiguration

Tartarus liest seine Konfiguration aus Profildateien, die im Verzeichnis /etc/tartarus/ abgelegt werden. Es handelt sich um Shell-Skripte, die vom Backup-Prozess ausgewertet werden; daher ist es auch möglich, über das Kommando "source" weitere Konfigurationsdateien in einem Profil einzuschließen. Dies lässt sich nutzen, um generische Einstellungen für alle Backup-Profile zentral abzuspeichern:

Allgemeine Einstellungen

# /etc/tartarus/generic.inc
# Generische Einstellungen für die Sicherung
# auf den Hetzner-FTP-Server
STORAGE_METHOD="FTP"
# Adresse des FTP-Server
STORAGE_FTP_SERVER="1.2.3.4"
# FTP-Zugangsdaten
STORAGE_FTP_USER="12345"
STORAGE_FTP_PASSWORD="SecretPassword"
# Übertragung verschlüsseln
STORAGE_FTP_USE_SSL="yes"
# Zertifikat akzeptieren
STORAGE_FTP_SSL_INSECURE="yes"

# Kompression
COMPRESSION_METHOD="bzip2"
# Größe des LVM-Snapshots
LVM_SNAPSHOT_SIZE="1000M"

# Backup-Daten symmetrisch verschlüsseln
ENCRYPT_SYMMETRICALLY="yes"
# Passwort aus /etc/tartarus/backup.sec lesen
ENCRYPT_PASSPHRASE_FILE="/etc/tartarus/backup.sec"

# Während der Erstellung der Sicherung nicht über
# Dateisystemgrenzen hinausgehen
STAY_IN_FILESYSTEM="yes"

Diese Einstellungen verschlüsseln Sicherungen mit einem Passwort, das aus der Datei /etc/tartarus/backup.sec gelesen wird. Der Inhalt dieser Datei ist erforderlich, um die Archive später wieder entpacken zu können; er sollte daher sicher (evtl. in ausgedruckter Form) verwahrt werden.

Einfache Sicherung

Ein einfaches Profil zur Sicherung des Root-Dateisystems (/) könnte folgendermaßen aussehen:

# /etc/tartarus/root.conf
#
# Allgemeine Einstellungen einlesen
source /etc/tartarus/generic.inc
# Name des Sicherungsprofils
NAME="root"
# Verzeichnis / sichern
DIRECTORY="/"
# Keine temporären Dateien sichern
EXCLUDE="/tmp/"
# keinen LVM-Snapshot erstellen
CREATE_LVM_SNAPSHOT="no"

Die Sicherung lässt sich einfach durch folgenden Aufruf starten:

/usr/local/sbin/tartarus.sh /etc/tartarus/root.conf

Sicherung mit LVM-Snapshot

LVM-Snapshots erlauben es, das dem Dateisystem zu Grunde liegende LVM-Blockgerät im laufenden Betrieb einzufrieren. Dazu speichert das LVM-System die während des Betriebs anfallenden Änderungen in einem separaten Logical Volume.

# /etc/tartarus/home.conf
source /etc/tartarus/generic.inc

NAME="home"
DIRECTORY="/home"
# LVM-Snapshot erstellen
CREATE_LVM_SNAPSHOT="yes"
# LVM-Volume, auf dem das Dateisystem gespeichert ist
LVM_VOLUME_NAME="/dev/volumegroup/home"
# Mountpoint, in dem das Dateisystem eingehängt wird
LVM_MOUNT_DIR="/home"

Um das Snapshot-Dateisystem einbinden zu können, benutzt Tartarus das Verzeichnis /snap: Die eingefrorenen Dateisysteme werden in den dazugehörigen Unterverzeichnissen eingeklinkt.

Inkrementelle Sicherungen

Inkrementelle Sicherungen archivieren nicht das gesamte Dateisystem, sondern nur die Änderungen seit der letzten vollständigen Sicherung. Tartarus legt Markierungs-Dateien an, um den genauen Zeitpunkt der letzten Sicherung festzuhalten. Um inkrementelle Sicherungen durchzuführen, muss zunächst ein Verzeichnis angelegt werden, das diese Dateien enthält:

mkdir -p /var/spool/tartarus/timestamps/

Die Konfigurationsprofile erhalten nun folgende Zeile (mit entsprechend angepasstem Dateiname):

INCREMENTAL_TIMESTAMP_FILE="/var/spool/tartarus/timestamps/home"

Nach jeder erfolgreichen Sicherung aktualisiert das Skript diese Datei. Um eine inkrementelle Sicherung durchzuführen, startet man Tartarus mit dem zusätzlichen Parameter "-i":

/usr/local/sbin/tartarus.sh -i /etc/tartarus/home.conf

Automatischer Aufruf

Ein typisches System wird über mehrere Backup-Profile im Verzeichnis /etc/tartarus/ verfügen; um sie automatisch aufzurufen, bietet sich folgendes Hilfskript an:

#!/bin/sh
# /usr/local/sbin/backup.sh
# Run all backup profile found in /etc/tartarus/ and pass
# command line arguments on to tartarus (e.g. -i)
for profile in /etc/tartarus/*.conf; do
  /usr/local/sbin/tartarus.sh $* "$profile"
done

Es lässt sich nun mit und ohne Parameter aufrufen, um alle Profile als vollständige oder inkrementelle Sicherung abzuarbeiten:

/usr/local/sbin/backup.sh # Vollsicherung
/usr/local/sbin/backup.sh -i # Inkrementelle Sicherung

Der Befehl "crontab -e" editiert die Crontab des Root-Benutzers:

PATH=/bin/:/sbin/:/usr/bin/:/usr/sbin/:/usr/local/sbin/:/usr/local/bin
# m    h       dom     mon     dow     command
0      1       *       *       mon-sat /usr/local/sbin/backup.sh -i
0      1       *       *       sun     /usr/local/sbin/backup.sh

Jeden Sonntag wird so um 1:00h nachts eine vollständige Sicherung gestartet; an den übrigen Tagen wird eine darauf basierende inkrementelle Sicherung erstellt.

Wiederherstellung

Da Tartarus auf einfachen Unix-Werkzeugen basiert, lässt sich eine Sicherung sehr einfach aus dem Rettungssystem wiederherstellen. Um die Dateien in einer Sicherung anzuzeigen, genügt folgende Befehlszeile:

curl ftp://USER:PASS@YOURSERVER/home-20080411-1349.tar.bz2.gpg | gpg --decrypt | tar tpvj

Um das Archiv in das Verzeichnis /mnt/restore zu entpacken, wird die Zeile folgendermaßen modifiziert:

curl ftp://USER:PASS@YOURSERVER/home-20080411-1349.tar.bz2.gpg | gpg --decrypt | tar -C /mnt/restore xpvj

Alte Sicherungen löschen

Werden regelmäßig Sicherungen erstellt, gerät die Quota des FTP-Servers schnell an die Grenze - alte Sicherungen sollten daher regelmäßig entfernt werden. Dies erledigt das Skript "charon.pl" automatisch: folgender Befehl überprüft alle Sicherungen namens "home" auf dem FTP-Server auf ihr "Haltbarkeitsdatum". Durch den Parameter "--dry-run" werden die Dateien nicht wirklich entfernt.

/usr/local/sbin/charon.pl --host 1.2.3.4 --user USERNAME --password PASSWORD --profile home --maxage 7 --dry-run

Charon würde alle Dateien, deren Erstellung länger als 7 Tage zurückliegt, entfernen. Dies passiert jedoch nur, wenn keine inkrementellen Sicherungen darauf basieren.

Um nach einem erfolgreichen Backup den FTP-Server automatisch aufzuräumen, kann man einen Tartarus-Hook benutzen. Folgender Eintrag in den Tartarus-Einstellungen (z.B. generic.inc) überprüft nach jedem Backup-Lauf den Server auf abgelaufene Archive:

# FTP-Server nach der Sicherung aufräumen
TARTARUS_POST_PROCESS_HOOK() {
    echo -n "$STORAGE_FTP_PASSWORD" | /usr/local/sbin/charon.pl --host "$STORAGE_FTP_SERVER" --user "$STORAGE_FTP_USER" --dir "$STORAGE_FTP_DIR" --readpassword --maxage 7 --profile "$NAME"
}

Das Skript übernimmt so die Einstellungen direkt aus der Tartarus-Konfiguration. Damit das Passwort nicht in der Prozessliste erscheint, wird es über die Standardeingabe eingelesen.



© 2020. Hetzner Online GmbH. Alle Rechte vorbehalten.