Backup Helper
Auf dem MediaPC läuft Duplicati und kümmert sich um das Offside und Offline Backup. Für das Online Backup möchte ich einen anderen Weg gehen und nutze dazu das modifizierte NAS als Online Backup Ziel. Ich erhoffe mir dadurch den Prozessor des NAS nicht zu überfordern und nicht von einem Backup Programm abhängig zu sein. Zur Vorbereitung für das rsync Backup Skript und die generelle Nutzbarkeit sind ein paar Einstellungen vorzunehmen. Die Idee ist, dass das NAS von sich aus ohne äußeren Einfluss das Backup durchführt (Pull statt Push) um Abhängigkeiten zu verringern und die Sicherheit ein wenig zu erhöhen.
WakeOnLAN installieren
Unter Debian Linux ist das Program wakeonlan erforderlich und die MAC Adresse des aufzuweckenden Rechners. DIe MAC Adresse erhält man auf dem entsprechenden Rechner mit dem Befehl ifconfig unter HWaddr stehet die MAC Adresse.
sudo apt-get install wakeonlan
wakeonlan 00:23:5D:1A:1E:D1 (nicht meine echte MAC-Adresse)
SSH-Anmeldung ohne Passwort
Damit das Skript nach dem Aufwecken des MediaPC eine SSH Verbindung ohne Passwort aufbauen kann muss folgendes eingerichtet werden. Ich gehe dabei nach der Anleitung von checkmk und verwende SSH mit öffentlichen Schlüsseln vor.
Auf dem NAS unter dem Standardnutzer wird zunächst ein Schlüsselpaar ohne Passphrase (einfach Enter drücken) erzeugt.
ssh-keygen -t rsa
Dann per SSH mit Passwort auf MediaPC einloggen und Verzeichnis .ssh im Homeverzeichnis erzeugen, wenn noch nicht vorhanden.
ssh icke@glotze
mkdir -p ~/.ssh
mkdir -p ~/.ssh
Dann die SSH Verbindung beenden, wieder zurück auf das NAS und den erzeugten Schlüssel auf den MediaPC senden. Bei mir musste ich authorized_keys2 nutzen, da auf dem MediaPC OpenSSH_8.2p1 Ubuntu-4ubuntu0.1, OpenSSL 1.1.1f 31 Mar 2020 installiert ist.
cat ~/.ssh/id_rsa.pub | ssh icke@glotze 'cat >> .ssh/authorized_keys2'
Anschließend sollte ine Verbindung ohne Passwort möglich sein.
ssh icke@glotze
Aufwachen zu einer vorgesehenden Zeit / Shutdown bei Nichtnutzung
Zum Aufwachen des NAS wird wieder rtcwake genutzt. Diesmal wird die Aufweckzeit aber manuell gesetzt. Als Basis wird das Wakeup / Shutdown Skript des MediaPC genutzt und angepasst. Hier konnt ihr die aktuelle Version runterladen.
sudo apt-get install python3 cron
Mit date kann man sich die aktuelle Uhrzeit anschauen und falls diese nicht passt mit folgendem Befehl die lokale Systemzeit anpassen:
sudo dpkg-reconfigure tzdata
Das Skript wird dann in die Cron Tabelle des SuperUsers eingetragen und verrichtet seinen Dienst.
sudo crontab -e
#*/10 * * * * /usr/bin/python3 /home/icke/Scripts/backup_helper.py >> /home/icke/cron.log 2>&1
Das Skript prüft alle 10min über cron, ob eine SSH Verbindung offen ist. Dies reicht beim NAS aus um die beiden Hauptszenare abzudecken. Das Backup läuft und kopiert Daten über SSH oder ich als Benutzer arbeite über SSH am NAS. Wenn keine Verbindung offen ist wird das NAS heruntergefahren und der WakeUp Zeitpunkt gesetzt. Dieser kann manuell gesetzt werden, in meinen Beispiel immer am nächsten Tag um 20 Uhr. Das Backup Skript wird dann beim Sytemstart ausgeführt. Damit ist auch einfach sichergestellt, dass das Skript nur einmal und nicht alle 10min ausgeführt wird.