Online Backup für Linux

Diese Anleitung beschreibt, wie Sie unter Linux mit Hilfe des OpenSSH Public-/Private Schlüsselverfahren und dem Programm rsync Ihr Backup auf unseren Online-Backup Server schreiben können.

Wie wird das Backup eingerichtet?

  • Generieren des SSH Public/Private Schlüsselpaars
  • Kopieren des public Schlüssels auf den Backup Server
  • Manuelles Überprüfen, ob das login mit dem ssh Schlüssel richtig funktioniert
  • Manuelles Ausführen des Backups via rsync-Befehl
  • Generieren des Backup Scripts
  • Testen des Backup Scripts
  • Backup Script einem cronjob hinzufügen

Bitte beginnen Sie mit Schritt 1

Übersicht

Schritt 1

Generieren des SSH Public/Private Schlüsselpaars

Um eine sichere, automatische Anmeldung am Backup Server zu ermöglichen, wird zuerst ein Public/Private Schlüsselpaar ohne Passwort generiert:

Bitte beachten Sie, dass es sich bei untenstehendem Output um ein Bespiel handelt. Einzelheiten der Ausgabe werden auf Ihrem System anders sein.

user@box ~ $ ssh-keygen -N '' -t ed25519 -f "${HOME}/.ssh/backup_id_ed25519"
Generating public/private ed25519 key pair.
Your identification has been saved in /home/user/.ssh/backup_id_ed25519.
Your public key has been saved in /home/user/.ssh/backup_id_ed25519.pub.
The key fingerprint is: SHA256:ljP1HGjYtQVeORT7V6CK2mBUPf723ntF2XY6om48vAU user@box
The key's randomart image is:
+--[ED25519 256]--+
|         .. oo*o |
|       . oo+ =oo |
|      . ..=.= ..+|
|       . =.+ . o*|
|       o S E.o ++|
|     . = o .+ o o|
|      . .o o.o ..|
|           *. ...|
|         ooo ...+|
+----[SHA256]-----+

Es wurden nun die folgenden zwei Dateien generiert:

${HOME}/.ssh/backup_id_ed25519
${HOME}/.ssh/backup_id_ed25519.pub

Übersicht

Schritt 2

Kopieren des öffentlichen Schlüssels auf den Backup Server

Der öffentliche Schlüssel wird nun unter dem Namen "authorized_keys" auf den Backup Server (backup-02.stoney-backup.com) kopiert.

Vergessen Sie nicht die Zahl 4000042 durch Ihren Benutzernamen (Ihre Backup UID) zu ersetzen.

Für die Passworteingabe verwenden Sie das Passwort, dass Sie von stepping-stone AG erhalten haben.

 

user@box ~ $ ssh-copy-id -i /home/user/.ssh/backup_id_ed25519.pub 4000042@backup-02.stoney-backup.com
The authenticity of host 'backup-02.stoney-backup.com (31.216.40.233)' can't be established.
RSA key fingerprint is af:79:39:f7:89:c2:88:7a:17:80:73:a6:08:23:a2:2e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'backup-02.stoney-backup.com' (RSA) to the list of known hosts.
Password: ******

 

 

Übersicht

Schritt 3

Manuelles Überprüfen, ob das Login mit dem SSH Schlüssel richtig funktioniert

Nachdem Sie den public Schlüssel erfolgreich zum Backup Server kopiert haben, sollten Sie nun manuell überprüfen, ob Sie sich via SSH auf dem Server einloggen können.

Dieser Befehl sollte nun "Es funktioniert" zurückgeben: (Vergessen Sie wiederum nicht die Nr. 4200042 mit Ihrem Benutzernamen, normalerweise Ihre Backup UID, zu ersetzen)

user@box ~ $ ssh -i ${HOME}/.ssh/backup_id_ed25519 4000042@backup-02.stoney-backup.com echo Es funktioniert
Es funktioniert

Gratulation, alles funktioniert so wie es sollte!

Übersicht

Schritt 4

Auspacken und und Konfigration des Backup Scripts

Speichern Sie die Datei online-backup-2.0.11.tar.gz in Ihr Home-Verzeichnis. Entpacken Sie danach die Datei online-backup-2.0.11.tar.gz folgendermassen:

user@box ~ $ mkdir -p OnlineBackup
user@box ~ $ tar xzfv online-backup-2.0.11.tar.gz --strip 1 --directory OnlineBackup
online-backup-2.0.11/
online-backup-2.0.11/.gitignore
online-backup-2.0.11/CHANGES
online-backup-2.0.11/Jenkinsfile
online-backup-2.0.11/LICENSE
online-backup-2.0.11/README.md
online-backup-2.0.11/bin/
online-backup-2.0.11/bin/OLBUtils.pm
online-backup-2.0.11/bin/OnlineBackup.pl
online-backup-2.0.11/bin/OnlineRestore.pl
online-backup-2.0.11/bin/OnlineRestore.sh
online-backup-2.0.11/conf/
online-backup-2.0.11/conf/OnlineBackup.conf.default
online-backup-2.0.11/conf/OnlineBackupExcludeFiles.conf.default
online-backup-2.0.11/conf/OnlineBackupIncludeFiles.conf.default
online-backup-2.0.11/doc/
online-backup-2.0.11/doc/OnlineBackup.html
online-backup-2.0.11/doc/OnlineBackup.pod
online-backup-2.0.11/doc/OnlineBackup.txt
online-backup-2.0.11/log/
online-backup-2.0.11/log/.gitignore
online-backup-2.0.11/onlinebackup.spec
online-backup-2.0.11/tmp/
online-backup-2.0.11/tmp/.gitignore

Falls Sie OnlineBackup das erste Mal auf diesem System installieren, müssen Sie die Konfigurations-Dateien zu ihren richtigen Namen umbenennen:

cd OnlineBackup/conf/
mv OnlineBackup.conf.default OnlineBackup.conf
mv OnlineBackupExcludeFiles.conf.default OnlineBackupExcludeFiles.conf
mv OnlineBackupIncludeFiles.conf.default OnlineBackupIncludeFiles.conf

Nachdem Sie nun das OnlineBackup in einem Ordner installiert haben, müssen Sie dieses noch konfigurieren.

Die Konfiguration umfasst folgende drei Datei

  • OnlineBackup.conf
  • OnlineBackupExcludeFiles.conf
  • OnlineBackupIncludeFiles.conf

Wir starten mit der Anpassung der Datei OnlineBackup.conf. Diese Datei ist zuständig für die richtige Lokalisierung aller Pfadangaben, etc.

Als Erstes fügen wir unseren Benutzernamen und Hostnamen ein:

REMOTEUSER=Benutzername # Zum Beispiel: 4000042
REMOTEDIR=Hostname # Zum Beispiel: box

Falls Sie die Installation wie beschrieben ausgeführt haben, sollte der Rest übereinstimmen. Ansonsten müssen Sie die Pfade zu den Dateien noch manuell anpassen:

INCLUDEFILE=$HOME/OnlineBackup/conf/OnlineBackupIncludeFiles.conf
EXCLUDEFILE=$HOME/OnlineBackup/conf/OnlineBackupIncludeFiles.conf
PERMSCRIPT=/tmp/SetPermissions.sh

Überprüfen Sie noch den Eintrag PERMSCRIPT. Dieser ist sehr wichtig, da diese Datei alle Permissions speichert, damit die Dateien bei Verlust auch erfolgreich zurückgeschrieben werden können. Der Eintrag sollte wie nachfolgend auf den /tmp Ordner zeigen: PERMSCRIPT=$HOME/OnlineBackup/tmp/.SetPermissions.sh.

user@box ~ $ vi ~/OnlineBackup/conf/OnlineBackup.conf
REMOTEUSER=4000042
PRIVKEYFILE=$HOME/.ssh/backup_id_ed25519
INCLUDEFILE=$HOME/OnlineBackup/conf/OnlineBackupIncludeFiles.conf
EXCLUDEFILE=$HOME/OnlineBackup/conf/OnlineBackupExcludeFiles.conf
PERMSCRIPT=$HOME/OnlineBackup/tmp/SetPermissions.sh
LOGFILE=$HOME/OnlineBackup/log/OnlineBackup.log
REMOTEDIR=box
LOCKFILE=$HOME/OnlineBackup/tmp/OnlineBackup.lock

Verändern Sie den zweiten Teil der Datei nicht, da dieser Server- und Systemspezifische Teile enthält.

Speichern Sie OnlineBackup.conf und öffnen Sie nun die Datei OnlineBackupIncludeFiles.conf.

WICHTIG: In diesem Ordner muss Ihr User Lese-und Schreibzugriff haben!

Fügen Sie nun alle Pfade hinzu, die Sie gerne gesichert haben möchten (Hier möchten wir /etc und /home sichern). Sie werden bei der nächsten Konfigurationsdatei die Möglichkeit haben, gewisse Ordner in den Pfaden, die Sie hier zum sichern angeben, auszuschliessen und nicht zu sichern.

user@box ~ $ vi $HOME/OnlineBackup/conf/OnlineBackupIncludeFiles.conf
$HOME/OnlineBackup
/etc/
/home/

Speichern Sie die Datei OnlineBackupIncludeFiles.conf und öffnen Sie nun OnlineBackupExcludeFiles.conf.

Fügen Sie in dieser Datei alle Pfade hinzu, die auf keinen Fall gesichert werden sollten. Falls Sie ebenfalls /home sichern möchten und einen Benutzer auf dem System haben, den Sie nicht sichern möchten (Wie hier scponly), dann fügen Sie den Pfad zur Liste hinzu.

user@box ~ $ vi $HOME/OnlineBackup/conf/OnlineBackupExcludeFiles.conf
/proc/*
/sys/*
/home/scponly/*

Speichern Sie die Datei OnlineBackupExcludeFiles.conf. Sie haben nun erfolgreich alle nötigen Dateien konfiguriert.

Testen Sie nun im nächsten Schritt Ihr Online Backup.

Übersicht

Schritt 5

Testen des Backup Scripts

Falls die Datei noch nicht ausführbar sein sollte, ändern Sie diese mit chmod folgendermassen:

user@box ~ $ chmod 750 ${HOME}/OnlineBackup/bin/OnlineBackup.pl

Achtung: Perl muss installiert und lauffähig sein!

Der Parameter -h oder --help des Scripts gibt Ihnen eine kleine Hilfe aus.

Starten Sie nun das Backup Script folgendermassen:

user@box ~ $ ${HOME}/OnlineBackup/bin/OnlineBackup.pl -c ${HOME}/OnlineBackup/conf/OnlineBackup.conf

oder

user@box ~ $ perl ${HOME}/OnlineBackup/bin/OnlineBackup.pl -c ${HOME}/OnlineBackup/conf/OnlineBackup.conf

Je nach dem, wie viele Ordner Sie angegeben haben, kann dies nun eine Weile dauern, da dies die erste Synchronisation ist, bei der alle Dateien und Verzeichnisse kopiert und gesichert werden.

Nachdem dieser Prozess abgeschlossen ist, können Sie den gleichen Befehl nochmals ausführen. Diesmal (und ebenfalls in Zukunft) sichert das Script nur noch die veränderten Dateien der angegebenen Ordner.

Falls Sie ein regelmässiges Backup einrichten wollen, fahren Sie mit dem nächsten Schritt fort.

Übersicht

Schritt 6

Regelmäsiges Backup einrichten

Dieses Beispiel ist für Gentoo Linux mit dcron - andere Konfigurationen können von diesem Beispiel abweichen!

Als Erstes stellen Sie sicher, dass Sie einen cron Dienst installiert und für diesen User konfiguriert haben. Falls nicht, fügen Sie diesen noch zur Gruppe cron hinzu. (Sie müssen für dies als root angemeldet sein)

Um nun ein tägliches Backup einzurichten, erstellen Sie die Datei crons.cron folgendermassen:

user@box ~ $ vi crons.cron
#Mins Hours Days Months Day of the week
#Dieser Eintrag führt das Backup jeden Tag um 17:00h aus
00 17 * * * ${HOME}/OnlineBackup/bin/OnlineBackup.pl -c ${HOME}/OnlineBackup/conf/OnlineBackup.conf

Speichern Sie die Datei crons.cron und fügen Sie den job dem cron folgendermassen hinzu:

user@box ~ $ crontab crons.cron

Um sicherzustellen, dass der Job wirklich ausgeführt wurde, kontrollieren Sie die log-Datei. (Erst nach der Ausführungszeit des jobs testen, ansonsten werden Sie nichts finden) Für dcron funktioniert dies folgendermassen:

user@box ~ $ tail -f /var/log/cron.log
16-Jun-06 12:19 USER user pid 12451 cmd
/home/user/OnlineBackup/bin/OnlineBackup.pl -c /home/user/OnlineBackup/conf/OnlineBackup.conf

Falls der Eintrag OnlineBackup.pl im log erscheint, wurde der job erfolgreich ausgeführt. Gratulation, Sie haben nun ein automatisches tägliches Backup Ihrer wichtigen Dateien erfolgreich eingerichtet.

 

Dieses Beispiel ist für CentOS Linux mit systemd - andere Konfigurationen können von diesem Beispiel abweichen!

Um nun ein tägliches Backup einzurichten, erstellen Sie die einen Service und einen Timer:

user@box ~ $ vi /etc/systemd/system/onlinebackup.service
[Unit]
Description=Run the Online Backup utility

[Service]
Type=oneshot
ExecStart=/home/user/OnlineBackup/bin/OnlineBackup.pl -c /home/user/OnlineBackup/conf/OnlineBackup.conf

user@box ~ $ vi /etc/systemd/system/onlinebackup.timer
[Unit]
Description=Run onlinebackup daily

[Timer]
#Dieser Eintrag führt das Backup jeden Tag um 17:00h aus
OnCalendar=*-*-* 17:00:00
[Install]
WantedBy=timers.target

Danach müssen Sie den Timer starten:

systemctl daemon-reload

systemctl enable onlinebackup.timer
systemctl start onlinebackup.timer

systemctl list-timers onlinebackup.timer

NEXT                        LEFT     LAST
Sat 2017-01-14 17:00:00 CET 12h left Fri 2017-01-13 17:00:00 CET
PASSED  UNIT               ACTIVATES
11h ago onlinebackup.timer onlinebackup.service

1 timers listed.

Um dieses tägliche Backup zu überwachen, fahren Sie bitte mit Schritt 8 weiter.

Übersicht

Schritt 7

Tägliches Backup überwachen

Um die Überwachung für Ihr tägliches Backup einzuschalten, müssen Sie noch einmal die Konfigurations-Datei editieren. Setzen Sie die Werte für SCHEDULEDHOUR und SCHEDULEDMINUTE entsprechend dem, was Sie im cronjob angegeben haben:

user@box ~ $ vi ${HOME}/OnlineBackup/conf/OnlineBackup.conf
SCHEDULEDHOUR=17
SCHEDULEDMINUTE=00

Mit diesen Einstellung wird auf dem Server gespeichert, wann Sie Ihr tägliches Backup geplant haben.

Um die Überwachung zu aktivieren, senden Sie uns bitte ein E-mail an support(at)stepping-stone.ch und teilen Sie uns Ihren Benutzernamen mit.

Übersicht