Backup-Strategien ohne Programmierkenntnisse

Ein Leitfaden mit ChatGPT

“No Backup, no Sorry!” – Dieser altbekannte Spruch in der IT ist keineswegs zu unterschätzen. Wenn eines Tages ein Systemausfall eintritt, ist die Erleichterung groß, wenn man auf ein zuverlässiges Backup zugreifen kann, das Wochen oder gar Monate harter Arbeit bewahrt. Insbesondere bei Webhosting-Anbietern gestaltet sich das Erstellen von Backups oft als Herausforderung, da entsprechende Tools zur Implementierung einer soliden Sicherungsstrategie selten zur Verfügung stehen. Doch mit ChatGPT lässt sich auch ohne solche Tools recht einfach eine elegante Lösung entwickeln.

Einleitung und Vorbetrachtungen

Meine gesamten Webseiten hoste ich bei netcup und bin mit ihrem Tarif recht zufrieden. Wie bereits erwähnt, bieten die meisten Webhoster keine umfassenden Backup-Lösungen an, was in den Foren der Community oft zu hitzigen Diskussionen führt. Zwar sichert netcup die Instanzen, verlangt jedoch im Bedarfsfall eine Gebühr für die Wiederherstellung. Alternativ gibt es kostenpflichtige externe Lösungen, doch vielen ist es nicht geheuer, sensible Daten einem Dritten anzuvertrauen.

Meine erste Wahl wäre ein Python-Skript gewesen, allerdings lässt sich dieses in meinem Paket nicht ausführen. In anderen Programmiersprachen fehlen mir zudem die Kenntnisse und Erfahrungen. Aber dafür gibt es ja ChatGPT! Also nutze ich die vorhandenen Mittel und lasse mir einfach ein Skript schreiben. In diesem Beitrag werde ich kurz erläutern, wie das funktioniert und wie diese Strategie auch in anderen Fällen schnell zu einer Lösung verhelfen kann. Ich bin der Meinung, dass genau dies der Ansatz für den (Web)Worker von morgen ist. Man muss nicht zwingend eine bestimmte Programmiersprache beherrschen, sondern sollte prinzipielle Konzepte verstehen und gut formulieren können, wie etwas umgesetzt werden soll.

Ziele des Backup-Skripts

Bevor ich mit ChatGPT in die Entwicklung des Skripts einsteige, muss ich mir zunächst über die Anforderungen im Klaren sein. Mein Backup-Skript soll folgendes erreichen:

  • Es soll in PHP geschrieben sein.
  • Täglich definierte Verzeichnisse als komprimierte tar-Archive und gz-komprimierte Datenbanken erstellen.
  • Diese in einen Ordner des aktuellen Tages ablegen, um einen wöchentlichen Sicherungszyklus zu generieren.
  • Vor der Speicherung alte Backups löschen.
  • Ein Backup-Log anlegen.
  • Mir eine E-Mail nach erfolgter Sicherung senden.
  • Das Skript wird über einen Cronjob aufgerufen.

Aus Sicherheitsgründen ist das Skript nicht über einen Webaufruf erreichbar, sondern liegt in einem speziellen Ordner “backup” auf dem Webspace.

Meine Interaktion mit ChatGPT beginnt mit folgendem Prompt:

ChatGPT Prompt
ChatGPT Prompt

Die zu sichernden Verzeichnisse schreibe ich in eine separate Textdatei, um sie leichter bearbeiten zu können und vom Backup-Skript getrennt zu halten.

Prompt für das Backup Script
Prompt für das Backup Script

Mit diesen Informationen erstellt ChatGPT das erste Backup-Skript.

PHP Backup Script
PHP Backup Script

Dieses lade ich in meinen Ordner auf dem Webserver hoch:

Ordnerstruktur
Ordnerstruktur

und teste es durch Öffnen einer SSH-Verbindung auf den Server.

Test des Backup Scripts per Putty
Test des Backup Scripts per Putty

Der Skriptaufruf funktioniert. Nun geht es weiter mit der Sicherung der Datenbanken. Diese strukturiere ich in einer XML-Datei.

XML der Datenbanken
XML der Datenbanken

Dabei stoße ich auf eine erste Hürde: In meinen Passwörtern sind manchmal Sonderzeichen enthalten, die das Auslesen in XML unmöglich machen.

Sonderzeichen in Passwörtern
Sonderzeichen in Passwörtern

Das lässt sich jedoch relativ schnell beheben. Auch der Sicherungsbefehl im PHP-Skript birgt seine Tücken. Passwörter sollten in Hochkommas gesetzt werden, da sonst die Anmeldung am Server scheitert.

Sonderzeichen in Passwörtern
Sonderzeichen in Passwörtern

Sobald das Backup-Skript reibungslos läuft, bitte ich ChatGPT, es zu verbessern und robuster zu gestalten.

Verbesserung des PHP Backup Scripts
Verbesserung des PHP Backup Scripts

Ausführung des Backup-Skripts über einen Cronjob

Wenn alles fertig ist, richte ich einen Cronjob ein, der das Skript jeden Tag um 2 Uhr ausführt. Hierfür konfiguriere ich im Plesk-Backend meines Hosters den entsprechenden Befehl.

Cronjob in Plesk
Cronjob in Plesk

Ein kleiner Hinweis an dieser Stelle: Nach einigen Experimenten stelle ich fest, dass die zu sichernden Verzeichnisse in der Textdatei mit dem vollen Pfad angegeben werden müssen.

Absolute Pfade
Absolute Pfade

Wenn das Skript reibungslos durchläuft, stehen für jeden Tag die Sicherungen der letzten sieben Tage zur Verfügung.

Erfolgreiches Backup

Diese sollten wiederum auf ein externes System gespiegelt werden.

Fazit

ChatGPT eröffnet neue Wege, auch ohne tiefgreifende Programmierkenntnisse effektive Skripte zu erstellen und zu nutzen. Dies bedeutet, dass ein grundlegendes Verständnis der Konzepte und eine klare Beschreibung der Anforderungen oft ausreichen. Der Dialog mit GPT und die schrittweise Entwicklung einer Lösung zeigen, dass die Fähigkeit, innovative Lösungen zu entwickeln, nicht ausschließlich von technischem Fachwissen abhängt. Stattdessen betont diese Herangehensweise die Bedeutung von Kreativität, Kommunikation und Problemlösungskompetenzen. In einer Welt, in der Technologie eine immer größere Rolle spielt, sind diese Fähigkeiten von unschätzbarem Wert und markieren einen wichtigen Schritt in Richtung einer zugänglicheren und effizienteren Nutzung von Technologie für jedermann.