Kopia CLI einrichten

Last change on 2025-06-11 • Created on 2025-06-11 • ID: ST-BD1B2

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

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


  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 Cloud Console noch über die API erneut angezeigt werden.


  1. Kopia installieren

    Wenn Kopia CLI auf Ihrem System noch nicht installiert ist, installieren Sie es jetzt. Verwenden Sie dafür die offiziellen Schritte unter kopia.io.


  1. Das Kopia-Passwort erzeugen und speichern

    Mit apg (Advanced Password Generator) können Sie ein zufälliges Passwort generieren. Auf Debian-basierten Systemen können Sie es mit apt install apg installieren.

    apg -a 1 -m 32 -n 1 -M NCL

    Kopieren Sie das Kopia-Passwort aus dem Output und speichern Sie es lokal ab.


  1. Repository erstellen

    Für diesen Schritt benötigen Sie einen bestehenden Bucket (sehen Sie dazu das Getting Started "Bucket erstellen"). Ersetzen Sie in folgendem Befehl fsn1 mit dem Standort Ihres Buckets.

    Erstellen Sie ein neues Repository:

    kopia repository create s3 \
            --access-key=<your_access_key> \
            --secret-access-key=<your_secret_key> \
            --endpoint=fsn1.your-objectstorage.com \
            --region=fsn1 \
            --bucket="<your_bucket_name>"

    Wenn nach einem Passwort gefragt wird, geben Sie das eben erstellte Passwort an. Kopia verwendet das Passwort zum Verschlüsseln der Daten.

    Wichtig: Beim Wiederherstellen eines Backups, müssen Sie das Passwort erneut angeben, um die Daten zu entschlüsseln. Speichern Sie das Passwort an einem sicheren Ort, da Sie nicht mehr auf Ihre Kopia Backups zugreifen können, wenn Sie dieses verlieren.

    Nachdem das Repository erstellt wurde, prüfen Sie ob alles wie erwartet funktioniert:

    kopia repository validate-provider

    Im Output sollte etwas wie "All good" stehen.

    Sie sollten automatisch mit den neuen Repository verbunden sein. Um zu Prüfen, ob die Verbindung tatsächlich steht, führen Sie diesen Befehl aus:

    kopia repository status -t -s

    Ganz oben in der Ausgabe sollten diese Informationen angezeigt werden:

    Storage config:        {
                             "bucket": "<your_bucket_name>",
                             "endpoint": "fsn1.your-objectstorage.com",
                             "accessKeyID": "<your_access_key>",
                             "secretAccessKey": "*************".
                             [...]
    }

    Am Ende der Ausgabe sollte ein Befehl wie dieser angezeigt werden:

    kopia repository connect from-config --token <token>

    Mit kopia repository disconnect würden Sie die Verbindung zum Repository beenden. Nachdem die Verbindung beendet wurde, können Sie sich wiederverbinden, indem Sie entweder wie beim Erstellen die Zugangsdaten und den Endpunkt angeben oder den Befehl mit dem Token aus der oben genannten Ausgabe verwenden.

    Zum Wiederverbinden können Sie einen der folgenden Befehle nutzen:

    • Zugangsdaten und Endpunkt angeben
      kopia repository connect s3 \
              --access-key=<your_access_key> \
              --secret-access-key=<your_secret_key> \
              --endpoint=fsn1.your-objectstorage.com \
              --region=fsn1 \
              --bucket=<your_bucket_name>

    • Token angeben
      kopia repository connect from-config --token <token>

  1. Backup erstellen

    Erstellen Sie erst eine Testdatei:

    mkdir $HOME/test-repo
    echo "Content of test file." > $HOME/test-repo/test.txt

    Erstellen Sie nun ein Backup von der Testdatei. Bevor Sie den Befehl ausführen, stellen Sie sicher, dass Sie noch mit dem Repository verbunden sind.

    kopia snapshot create $HOME/test-repo
    kopia snapshot list $HOME/test-repo

    Das Backup sollte direkt in Ihrem Bucket angezeigt werden.


  1. Backups anzeigen und wiederherstellen

    • List all snapshots:

      kopia snapshot list
      # Identische Snapshots anzeigen (gleiche Snapshot-ID)
      # kopia snapshot list -l

      Beispiel-Output:

      holu@example:C:\Users\holu\test-repo
        <time_stamp>  <snapshot-id>  48  B  drwxrwxrwx  files:1  dirs:1  <tags>
    • Dateien und Ordner innerhalb eines Snapshots anzeigen:

      kopia ls -l <snapshot-id>

      Beispiel-Output:

      w-rw-  48  <time_stamp>  88cccae56419a116dfe37e03745f99f4  test.txt
    • Snapshot wiederherstellen

      kopia snapshot restore <snapshot-id> <zielordner>

      Den Zielordner können Sie beispielsweise $HOME/test-repo-restored nennen.

    • Snapshot löschen

      kopia snapshot delete <snapshot-id> --delete

  1. Automatische Backups einrichten

    Mit Cron-Jobs können Sie Backups automatisiert zu erstellen.

    Führen Sie repository status aus, um den Token anzuzeigen, den Sie brauchen, um sich wieder zu verbinden:

    kopia repository status -t -s

    Kopieren Sie den Befehl aus dem Output, um diesen im Skript hinzufügen zu können:

    kopia repository connect from-config --token <token>

    Erstellen Sie ein Skript, z.B. $HOME/backup.sh, und fügen Sie den eben kopierten Befehl ein:

    #!/bin/bash
    set -e
    
    # Mit Repository verbinden
    kopia repository connect from-config --token <token>
    
    # Snapshots erstellen:
    kopia snapshot create $HOME/test-repo

    Machen Sie das Skript ausführbar:

    chmod 700 $HOME/backup.sh

    Führen Sie das Skript manuell aus, um zu testen ob es funktioniert:

    ./backup.sh

    Wenn der Snapshot im Bucket erscheint, kann der Cron-Job eingerichtet werden:

    crontab -e

    Fügen Sie diese Zeile ein:

    0 0 * * * $HOME/backup.sh

    Mit diesem Cron-Job wird das Skript täglich um Mitternacht ausgeführt.

    * * * * * /path
    │ │ │ │ └───────────── Day of the week (0 - 6)
    │ │ │ └───────────── Month (1 - 12)
    │ │ └───────────── Day of the month (1 - 31)
    │ └───────────── Hour (0 - 23)
    └───────────── Minute (0 - 59)

Von Ihren Daten sollten nun automatisch Backups erstellt werden.