Linux Backup auf Synology mit rsync

Linux Backup auf Synology NAS mit rsync erstellen

Für Linux Backup eignet sich rsync und ein Synology NAS, rsync ist bei den meisten Linux OS bereits On-Board. Mit rsync werden Dateien und Ordner zwischen Lokalen oder Remote System verglichen, die Synchronisation findet von der Quelle zum Ziel statt.

In diesem Beitrag wird gezeigt, wie eine Datensicherung einer Linux Workstation oder Linux Server durchgeführt wird. Unter Verwendung von rsync auf eine Synology DiskStation oder RackStation als NAS (Network Attached Storage).

Synology DiskStation als rsync-Server

Als erstes wird die Synology DiskStation für rsync Aufgaben vorbereitet. Nach der Anmeldung öffnet man aus dem DSM die Systemsteuerung und geht zu Benutzer – Erweitert.

Linux Backup auf Synology mit rsync. Nach der Anmeldung öffnet man aus dem DSM die Systemsteuerung und geht zu Benutzer - Erweitert.

Bei der Einstellung unter Benutzer – Benutzerbasis setzt man ein Hacken bei Benutzer-Home-Dienst aktivieren.

Synology rsync-Dienst aktivieren

Nochfolgend wird der rsync-Dienst aktiviert, der unter Datendienste im Abschnitt rsync zu finden ist.

Linux Backup auf Synology mit rsync. rsync-Dienst aktivieren, der unter Datendienste im Abschnitt rsync zu finden ist.

Synology rsync-Konto hinzufügen

Damit der Benutzer mike mit rsync auf das NAS schreiben kann, muss dieser hinzugefügt werden, bei Datendienste – rsync – unter rsync-Konto aktivieren – mit dem Button rsync-Konto bearbeiten das Fenster öffnen und mit Hinzufügen den Benutzer wählen.

Linux Backup auf Synology, bei Datendienste - rsync - unter rsync-Konto aktivieren - mit dem Button rsync-Konto bearbeiten

Linux Backup mit rsync ausführen

Nun wollen wir auf dem Linux System unsere Datensicherung erstellen, dazu öffnet man ein Terminal und führt in der Shell folgende Befehlszeile aus.

rsync -zarvh /home/mike mike@10.10.10.110:/var/services/homes/mike

In diesem Beispiel wird das Home Verzeichnis von Mike auf das NAS 10.10.10.110 gesichert.

Hinweis: rsync verwendet auf der Synology DS ein eigenes Home Verzeichnis, für Mike ist es /var/services/homes/mike.

Linux Backup Job als Cron Task anlegen

Möchte man ein Backup Job als Cron Task anlegen, muss ein SSH Key erzeugt werden, der Public Key wird dabei auf dem NAS in der Datei ~/.ss/authorized_keys hier hinzugefügt, hierdurch für die Automatisierung keine Passwort Eingabe erforderlich ist.

Damit der Zugang zur Synology DS über SSH für Benutzer möglich ist, muss der SSH-Dienst hier aktiviert werden.

Hyper Backup Sicherungsaufgabe

Zuletzt kann eine Hyper Backup Sicherungsaufgabe erstellt werden, dabei können die Home Verzeichnisse in eine Sicherungsrotation eingeplant werden.

Linux Backup auf Synology mit rsync. Hyper Backup Sicherungsaufgabe erstellen

Troubleshooting

Wird von rsync folgender error ausgegeben!

ERROR: module is read only

dann hat der Benutzer vermutlich keine Schreibprivilegien im angegebenen Pfad. Die Lösung wird ermöglicht durch Übergabe des korrekten Pfades, dieser ist immer /var/services/homes/[user], auch sollte der Benutzer existieren und bei rsync-Konto hinzugefügt sein, ebenfalls muss der Benutzer eine Benutzerbasis /home/user haben.

Mit rsync kann man sich auch als root beim Remote Host authentifizieren, root kann ohne Einschränkungen in alle Verzeichnisse schreiben, dies sollte jedoch nur zu Test Zwecke genutzt werden, dabei sollte man Vorsicht walten lassen, den als root könnten möglicherweise wichtige Systemdateien überschreiben werden, oder es wird in nicht vorgesehene Verzeichnisse synchronisiert.

Apache Konfigurationsdateien mehrzeilig auskommentieren

Apache Konfigurationsdateien mehrzeilig auskommentieren

In Apache Konfigurationsdateien mehrzeilig Kommentarblöcke auskommentieren

Apache .conf-Dateien unterstützen nur einzeilige Kommentare, beginnend jeweils mit einem Hash (#) Zeichen. Sollen mehrere Zeilen als zusammenhängende Kommentarblöcke kommentiert werden, um beispielsweise eine VirtualHost-Konfiguration vorübergehend zu deaktivieren, bietet sich hierzu eine nicht vorhandene Laufzeitvariable anzuwenden, mit einer erfundenen IfDefine-Direktive umschliesst man den Codeblock der ignoriert werden soll, wie in folgendem Beispiel IfDefine-Direktive :

<IfDefine IgnoreLines>
<VirtualHost *:80>
        ServerAdmin hostmaster@foo.com
        ServerName foo.com
        ServerAlias www.foo.com
        DocumentRoot /home/www/foo.com/web/html
        ErrorLog /var/www/foo.com/web/logs/error_log
        CustomLog /var/www/foo.com/web/logs/access_log common
        Options ExecCgi IncludesNOEXEC

 <Directory "/var/www/foo.com/web/html">
    AllowOverride ALL
    Options FollowSymLinks
    Require all granted
 </Directory>
</VirtualHost>
</IfDefine>

Die VirtualHost-Direktive wird ignoriert, da IgnoreLines ein erfundener Parameter ist, der niemals auf true getestet wird. Wenn man die VirtualHost-Direktive wieder ausführen möchte, entfernt man einfach IfDefine wieder.

Apache VirtualHost bei RHEL

Um zu verifiziren welche VirtualHost ausgeführt werden, führt man bei RHEL und CentOS das httpd control command aus.

$ httpd -S

Apache VirtualHost bei Debian/Ubuntu

Bei Debian und Ubuntu gibt es das apachectl server control command.

$ apachectl -S

Bei einigen ist es der Befehl apache2ctl, häufig auch liegen beide vor.

$ apache2ctl -S

Fazit

In diesem Beitrag wird beschrieben, wie Apache Konfigurationsdateien mehrzeilig als Kommentarblöcke auskommentiert und editiert werden können. Dort wo mehrere Zeilen als zusammenhängende Kommentarblöcke kommentiert werden sollen, um beispielsweise eine VirtualHost-Konfiguration vorübergehend zu deaktivieren. Es bietet sich hierzu die nicht vorhandene Laufzeitvariable anzuwenden. Mit erfundener IfDefine-Direktive umschliesst man die Zeilen und Blöcke diese temporär nicht genutzt werden. Oder etwa um ein Abschnitt auf seine Funktion bzw. nicht Funktion zu testen.