Bareos einrichten

Last change on 2026-02-09 • Created on 2026-02-09 • ID: ST-330D6

Auf Grund der Skalierbarkeit und der hohen Verfügbarkeit eignen sich Buckets besonders gut zum Speichern von Backups.

Bareos ist ein Open-Source-Programm für schnelle und sichere Backups von lokalen und externen Ordnern und Dateien. Es verschlüsselt die Backups, sodass nur Sie auf diese zugreifen können. Weitere Information über Bareos finden Sie hier:

Bareos bietet verschiedene Lösungen für S3:

Dplcompat Storage Backend
Verfügbar seit Bareos 24

Apache Libcloud Plugin
Unterstützt S3 seit Bareos 25

Dieses How-To erklärt, wie man Dplcompat Storage Backend einrichtet.

Am Ende dieses How-Tos, sollten Sie folgende Dateien haben:

/etc/bareos/bareos-sd.d/
└── device/HetznerBucket_BareosDevice.conf      # Beschreibt wie Baros auf den S3-kompatiblen Object Storage zugreifen kann

/etc/bareos/bareos-dir.d/
├── storage/
|   └── HetznerBucket_BareosStorage.conf
|
├── fileset/
|   └── HetznerBucket_BareosFileSet.conf        # Bestimmt welche Dateien gesichert werden
├── schedule/
|   └── HetznerBucket_BareosSchedule.conf       # Bestimmt wann die Daten gesichert werden (Tag und Zeit)
└── job/
    ├── HetznerBucket_BareosJob.conf
    └── HetznerBucket_BareosRestoreJob.conf

Abschnitt A — Bareos mit Hetzner Object Storage verbinden

  1. Erstellen Sie Ihre S3-Zugangsdaten

    Für eine Schritt-für-Schritt-Anleitung, siehe das Getting Started "S3-Zugangsdaten hinzufügen".

    Denken Sie daran, die Zugangsdaten nach dem Erstellen an einem sicheren Ort zu speichern. Der Secret Key kann weder über die Hetzner Console noch über die API erneut angezeigt werden.


  1. PostgreSQL installieren

    Verwenden Sie dafür die offiziellen Schritte unter postgresql.org. Zum Beispiel auf Ubuntu:

    sudo apt update
    sudo apt install postgresql
    sudo systemctl status postgresql

  1. Bareos und Bareos Dplcompat Storage Backend installieren

    Wenn Bareos auf Ihrem System noch nicht installiert ist, installieren Sie es jetzt. Verwenden Sie dafür die offiziellen Schritte unter docs.bareos.org. Installieren Sie auch bareos-storage-dplcompat für S3-kompatiblen Speicher. Zum Beispiel auf Ubuntu:

    wget https://download.bareos.org/current/xUbuntu_24.04/add_bareos_repositories.sh
    sudo sh ./add_bareos_repositories.sh
    sudo apt update
    sudo apt install bareos dbconfig-common bareos-storage-dplcompat

    Während der Installation müssen Sie folgende Angaben machen:

    Option
    Mail server configuration Wählen Sie eine beliebige Option. Dieses Tutorial wurde mit "No configuration" getestet.
    Configure database for bareos-database-common with dbconfig-common? Yes
    Host name of the PostgreSQL database server for bareos-database-common localhost
    PostgreSQL application password for bareos-database-common Geben Sie ein sicheres Passwort Ihrer Wahl an.
    Password confirmation Geben Sie das eben festgelegte Passwort erneut ein.

    Service starten und Status prüfen:

    sudo systemctl start bareos-director bareos-storage bareos-filedaemon
    sudo systemctl enable --now bareos-director bareos-storage bareos-filedaemon
    sudo systemctl status bareos-director bareos-storage bareos-filedaemon

    Prüfen, ob Datenbank richtig eingerichtet wurde:

    sudo -u postgres psql -l | grep bareos
    sudo -u postgres psql -c "\du" | grep bareos
    psql -h localhost -U bareos -d bareos

    Wenn Sie nach einem Passwort gefragt werden, geben Sie das "PostgreSQL application password for bareos-database-common" an, das Sie bei der Bareos-Installation festgelegt haben.


  1. S3-kompatibles CLI-Tool installieren

    Wenn S3cmd auf Ihrem System noch nicht installiert ist, installieren Sie es jetzt wie in dem Getting Started "S3-kompatible CLI-Tools verwenden" erklärt.

    Nachdem S3cmd installiert ist, stellen Sie sicher, dass der Befehl auch mit Angabe eines Benutzers ausgeführt werden kann:

    sudo -u $USER s3cmd ls

    Wenn Ihnen eine Fehlermeldung wie s3cmd: command not found angezeigt wird, erstellen Sie einen symbolischen Link zu Ihrer s3cmd-Datei und testen Sie es anschließend erneut:

    sudo ln -s $(which s3cmd) /usr/local/bin/s3cmd
    sudo -u $USER s3cmd ls

    Richten Sie nun den Dplcompat Wrapper Program ein.

    Die offiziellen BareOS-Docs erklären, wie man s3cmd-wrapper.sh verwendet. Zum Beispiel:

    sudo cp ~/.s3cfg /etc/bareos/s3cfg
    sudo chown bareos /etc/bareos/s3cfg
    sudo -u bareos s3cmd --config /etc/bareos/s3cfg ls
    sudo s3cfg=/etc/bareos/s3cfg \
         bucket=<your_bucket_name> \
         -u bareos \
         /usr/lib/bareos/scripts/s3cmd-wrapper.sh \
         testconnection

  1. Device Resource und Storage Resource erstellen

    • Device Resource

      sudo cp -a /etc/bareos/bareos-sd.d/device/dplcompat.conf.example /etc/bareos/bareos-sd.d/device/HetznerBucket_BareosDevice.conf

      Bearbeiten Sie den kopierten Inhalt:

      • HetznerBucket_BareosDevice als "Name".
      • Ersetzen Sie <your_bucket_name> mit dem Namen Ihres Buckets.
      • Entfernen Sie storage_class.
      # /etc/bareos/bareos-sd.d/device/HetznerBucket_BareosDevice.conf
      Device {
        Name = HetznerBucket_BareosDevice
        Media Type = dplcompat
        Archive Device = S3 Object Storage
        Device Options = "iothreads=4"
                         ",ioslots=2"
                         ",chunksize=262144000"
                         ",program=s3cmd-wrapper.sh"
                         ",s3cfg=/etc/bareos/s3cfg"
                         ",bucket=<your_bucket_name>"
        Device Type = dplcompat
        Label Media = yes
        Random Access = yes
        Automatic Mount = yes
        Removable Media = no
        Always Open = no
        Description = "droplet compatible device"
      }
    • Storage Resource

      sudo cp -a /etc/bareos/bareos-dir.d/storage/dplcompat.conf.example /etc/bareos/bareos-dir.d/storage/HetznerBucket_BareosStorage.conf

      Bearbeiten Sie den kopierten Inhalt:

      • HetznerBucket_BareosStorage als "Name".
      • Ersetzen Sie die Werte von "Address" und "Password" mit den Werten aus /etc/bareos/bareos-dir.d/storage/File.conf.
      • Ersetzen Sie den Namen von "Device" mit dem Namen des Device, das Sie eben im vorigen Schritt erstellt haben.
      Storage {
        Name = HetznerBucket_BareosStorage
        Address  = "example-server"
        Password = "<your_password>"
        Device = HetznerBucket_BareosDevice
        Media Type = dplcompat
      }

    Starten Sie den Service neu und prüfen Sie anschließend den Status

    sudo -u bareos bareos-dir -t
    sudo systemctl restart bareos-director bareos-storage bareos-filedaemon
    sudo systemctl status bareos-director bareos-storage bareos-filedaemon

  1. Verbindung prüfen

    • Bareos-Console öffnen
      sudo bconsole
      Dieser Befehl öffnet die interaktive Console. Am Anfang der Zeile sollte nun ein * stehen.

    • Status prüfen
      status storage=HetznerBucket_BareosStorage
      Der Output sollte die Zeile Backend connection is working. enthalten.

    • Das erstellen von Backups mit existierenden Backup-Job testen
      run job=backup-bareos-fd storage=HetznerBucket_BareosStorage level=Full

    Wenn das Backup in Ihrem Bucket erscheint, funktioniert die Verbindung. Sie können nun einen eigenen Schedule erstellen und bestimmen, welche Daten genau gesichert werden sollen.


Abschnitt B — Backup-Schedule festlegen und zu sichernde Daten bestimmen

  1. Test-Datei erstellen

    Erstellen Sie einen neuen Ordner namens subdir und eine neue Datei namens test-file.txt, um das Erstellen von Backups bestimmter Daten zu testen. Fügen Sie in die Datei einen kurzen Text ein.

    mkdir -p "/tmp/backup/subdir"
    touch "/tmp/backup"/{test-file.1.txt,subdir/{test-file.2.txt,dont-backup.txt}}
    /tmp/backup/
    ├── test-file.1.txt
    └── subdir/
        ├── test-file.2.txt
        └── dont-backup.txt

  1. Backup Resourcen erstellen

    • FileSet Resource

      /etc/bareos/bareos-dir.d/fileset/HetznerBucket_BareosFileSet.conf
      FileSet {
        Name = "HetznerBucket_BareosFileSet"
        Include {
          Options {
            signature = XXH128
          }
          File = /tmp/backup/test-file.1.txt
          File = /tmp/backup/subdir
        }
        Exclude {
          File = /tmp/backup/subdir/dont-backup.txt
        }
      }
    • Job Resource

      /etc/bareos/bareos-dir.d/job/HetznerBucket_BareosJob.conf
      Job {
        Name = "HetznerBucket_BareosJob"
        Type = Backup
        Pool = Full
        Messages = Standard
        Client = bareos-fd
        FileSet = "HetznerBucket_BareosFileSet"
        Schedule = "HetznerBucket_BareosSchedule"
        Storage = "HetznerBucket_BareosStorage"
      }
    • Schedule Resource

      Zu Testzwecken kann die Zeit so eingestellt werden, dass ein "Full" Backup in zwei Minuten und ein "Incremental" Backup in vier Minuten von jetzigen Zeitpunkt ausgeführt wird. Im folgenden Beispiel wird davon ausgegangen, dass die aktuelle Zeit Dienstag 12:58 Uhr ist. Mit timedatectl können Sie vor dem Erstellen der Schedule Resource die aktuelle Zeit auf Ihrem System prüfen. Passen Sie die Zeitangaben im folgenden Beispiel an Ihre eigene Zeit an.

      /etc/bareos/bareos-dir.d/schedule/HetznerBucket_BareosSchedule.conf
      Schedule {
        Name = "HetznerBucket_BareosSchedule"
        Run = Full tue at 13:00
        Run = Incremental tue at 13:02
      }

      Weitere Informationen zu unterstützten Zeitangaben, finden Sie in der offiziellen Bareos-Dokumentation.


  1. Aktualisieren

    sudo -u bareos bareos-dir -t
    sudo systemctl restart bareos-director
    sudo systemctl status bareos-director

    Warten Sie nun bis die Zeit, die in HetznerBucket_BareosSchedule.conf für "Full" festgelegt wurde, abgelaufen ist. Nachdem die Zeit abgelaufen ist, sollte in Ihrem Bucket ein Backup erscheinen.

    Nachdem der Backup erschienen ist, fügen Sie in dem Ordner, von dem der Backup erstellt wird, einen neue Datei ein, um auch den inkrementellen Backup zu testen.

    touch /tmp/backup/subdir/new.txt

    Nachdem die Datei hinzugefügt wurde, warten Sie bis die Zeit, die in HetznerBucket_BareosSchedule.conf für "Incremental" festgelegt wurde, abgelaufen ist. Nachdem die Zeit abgelaufen ist, können Sie mit dem nächsten Schritt fortfahren, der erklärt, wie man alle Jobs einsieht.


  1. Jobs anzeigen

    • Bareos Console öffnen

      sudo bconsole

      Am Anfang der Zeile sollte nun ein * stehen. Führen Sie folgenden Befehl aus, um die Jobs zu listen:

      *list jobs
      Automatically selected Catalog: MyCatalog
      Using Catalog "MyCatalog"
      +-------+-------------------------+-----------+---------------------+----------+------+-------+----------+------------+-----------+
      | jobid | name                    | client    | starttime           | duration | type | level | jobfiles | jobbytes   | jobstatus |
      +-------+-------------------------+-----------+---------------------+----------+------+-------+----------+------------+-----------+
      |     1 | backup-bareos-fd        | bareos-fd | 2026-02-16 12:15:09 | 00:00:24 | B    | F     |      444 | 37,520,807 | T         |
      |     2 | HetznerBucket_BareosJob | bareos-fd | 2026-02-16 12:43:02 | 00:00:14 | B    | F     |        3 |         20 | T         |
      |     3 | HetznerBucket_BareosJob | bareos-fd | 2026-02-16 12:56:02 | 00:00:15 | B    | I     |        2 |          4 | T         |
      +-------+-------------------------+-----------+---------------------+----------+------+-------+----------+------------+-----------+

      Im oberen Beispiel hat der dritte Job einen inkrementellen Backup erstellt.

      Falls Sie troubleshooten müssen, verwenden Sie zum Beispiel diese Befehle in bconsole:

      *messages
      *status dir

Abschnitt C — Backups wiederherstellen

  1. Backups wiederherstellen

    • Job Resource
      /etc/bareos/bareos-dir.d/job/HetznerBucket_BareosRestoreJob.conf
      Job {
        Name = "HetznerBucket_BareosRestoreJob"
        Type = Restore
        Pool = Full
        Messages = Standard
        Client = bareos-fd
        FileSet = "HetznerBucket_BareosFileSet"
        Storage = HetznerBucket_BareosStorage
        Where = /tmp/backup-restore
        Maximum Concurrent Jobs = 10
      }
      Nachdem Sie die Datei gespeichert haben, erstellen Sie einen Backup-Ordner und aktualisieren Sie erneut:
      sudo mkdir /tmp/backup-restore
      sudo -u bareos bareos-dir -t
      sudo systemctl restart bareos-director
      sudo systemctl status bareos-director

    • Bareos Console öffnen

      sudo bconsole

      Dieser Befehl öffnet die interaktive Console. Am Anfang der Zeile sollte nun ein * stehen.


    • Bestimmte Job ID wiederherstellen

      Listen Sie erst alle verfügbaren Jobs:

      list jobs job=HetznerBucket_BareosJob

      Wählen Sie eine Job ID aus und stellen Sie die entsprechenden Daten wieder her. Wenn Sie einen inkrementellen Backup wiederherstellen möchten, können Sie mehrere Job IDs getrennt mit einem Komma angeben.

      • Vollständigen Backup wiederherstellen:
        restore jobid=2 all done yes
      • Vollständigen und inkrementellen Backup wiederherstellen:
        restore jobid=2,3 all done yes

      Wenn gefragt wird, welcher Restore Job verwendet werden soll, geben Sie "HetznerBucket_BareosRestoreJob" an:

      Building directory tree for JobId(s) 2 ...
      2 files inserted into the tree and marked for extraction.
      The defined Restore Job resources are:
      1: HetznerBucket_BareosRestoreJob
      2: RestoreFiles
      Select Restore Job (1-2): 1

      In bconsole, können Sie messages ausführen, um den Status zu prüfen.

      Nachdem die Wiederherstellung abgeschlossen ist, sehen Sie sich die Dateien an:

      sudo ls /tmp/backup-restore/tmp/backup
      sudo ls /tmp/backup-restore/tmp/backup/subdir

Von Ihren Daten sollten nun automatisch Backups erstellt werden, zu den Zeitpunkten, die in /etc/bareos/bareos-dir.d/schedule/HetznerBucket_BareosSchedule.conf festgelegt wurden.

Table of Contents