Skript zur DatenbanksicherungEntwicklung & Anpassung

Ein Bash- oder Python-Skript, das Ihre MySQL- oder PostgreSQL-Datenbank sichert und nur die Kopien behält, die Sie wählen

Meist in 15 Minuten fertigÜberarbeitungen inklusiveQualitätsprüfung
Pakete
ZahlungsschutzMehr dazu
  • Überarbeitungen im Rahmen des Pakets sind kostenlos.
  • Reagieren Sie nicht innerhalb von 3 Tagen nach der Lieferung, gilt die Arbeit automatisch als abgenommen.

Das Geld wird bei der Zahlung reserviert und erst freigegeben, wenn Sie die Arbeit abnehmen.

Ein Bash- oder Python-Skript, das Ihre MySQL- oder PostgreSQL-Datenbank sichert und nur die Kopien behält, die Sie wählen

Beispielergebnis

Beispiel für das Standard-Paket

Monatliche Verkaufsdateien von 9 Läden in einem Excel-Bericht zusammenführen

So wird es gestartet

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Ordner: sales/2026-10, 9 Dateien gefunden
2026-11-02 09:14:03 INFO  shop-01.csv: 1.284 Zeilen
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 Zeilen
2026-11-02 09:14:04 WARN  shop-07.csv: 3 Zeilen ohne Preis übersprungen (Zeilen 88, 412, 913)
2026-11-02 09:14:05 INFO  Fertig: 10.412 Zeilen -> report-2026-10.xlsx (Tabellenblätter „Verkäufe“ und „Summen“)

Einstellungen statt Code

Die Spaltennamen jedes Ladens stehen in settings.ini, daher ist ein neuer Laden oder eine umbenannte Spalte nur eine Zeile dort:

[columns]
date = Datum, Verkaufsdatum, Tag
product = Artikel, Produkt, Bezeichnung
quantity = Menge, Anzahl, Stk.
price = Preis, Einzelpreis

Ein Teil des Codes

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Liest die Datei eines Ladens ein und gibt ihr die Spaltennamen des Berichts."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}: keine Spalte für '{name}' (gesucht wurde nach {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Dateien: ein ZIP-Archiv mit merge_sales.py (310 Zeilen), settings.ini, requirements.txt und einer README dazu, wie man Python installiert, das Skript startet und was jede Meldung im Protokoll bedeutet. Der Kunde startet es auf seinem eigenen Computer.

Kunde: eine kleine Kette von 9 Schreibwarenläden; jeder Laden schickt seine Monatsverkäufe als CSV- oder Excel-Datei, mit leicht unterschiedlichen Spaltennamen. Aufgabe: ein Skript, das jede Datei in einem Ordner einliest, die Spalten in eine einheitliche Form bringt und einen einzigen Excel-Bericht mit allen Verkäufen und einem Tabellenblatt mit Summen pro Laden schreibt.

Kunde und alle Angaben sind erfunden.

Über diese Leistung

Eine Datenbank ohne regelmäßige Kopien ist ein fehlerhaftes Update oder eine volle Festplatte vom Verlust von Bestellungen, Beiträgen oder Kundendaten entfernt. Dieses Skript, in Bash oder Python, je nachdem, was zu Ihrem Server passt, erstellt mit den mitgelieferten Werkzeugen (mysqldump oder pg_dump) einen vollständigen Dump Ihrer MySQL-, MariaDB- oder PostgreSQL-Datenbank, komprimiert ihn, benennt ihn mit dem Datum und behält nur die Kopien, die Ihre Regeln vorsehen, zum Beispiel 7 tägliche, 4 wöchentliche und 6 monatliche; ältere werden nur nach diesen Regeln entfernt. Das Datenbankpasswort kommt in die übliche Optionsdatei, die Sie auf Ihrem Server ausfüllen (.my.cnf oder .pgpass), nie in den Code. Sie installieren und starten es auf Ihrem eigenen Server; wir melden uns nie dort an. Testen Sie es zuerst an einer Testkopie und stellen Sie ein Backup in einer Testdatenbank wieder her, um sicherzugehen, dass es funktioniert.

Was enthalten ist

  • Das erhalten SieEin ZIP-Archiv mit dem Skript, einer README mit Schritt-für-Schritt-Anleitung und ab Standard einer Einstellungsdatei mit Datenbanken, Ordnern und der Anzahl aufzubewahrender Kopien; der Code wird auch auf der Bestellseite angezeigt.
  • Standardwerkzeugemysqldump oder pg_dump, nichts Exotisches zu installieren
  • Rotation nach Ihren RegelnAlte Kopien werden nur nach Ihren Vorgaben entfernt
  • Passwort nicht im CodeIn .my.cnf oder .pgpass auf Ihrem Server
  • Fehler werden erkanntAb Standard wird ein fehlgeschlagener oder leerer Dump protokolliert und nicht als Kopie gezählt
  • Lesbarer CodeMit Kommentaren, eine Datenbank lässt sich später leicht ergänzen

So funktioniert es

  1. 1
    AufgabeSie beschreiben den Server, die Datenbanken und wie viele Kopien aufbewahrt werden
  2. 2
    CodeWir schreiben das Skript und die Installationsanleitung
  3. 3
    AusprobierenSie starten es an einer Testkopie und stellen ein Backup in einer Testdatenbank wieder her
  4. 4
    ÜberarbeitungenSie wünschen Überarbeitungen im Rahmen Ihres Pakets und schicken etwaige Fehlermeldungen

Was wir von Ihnen brauchen

Die Datenbank (MySQL, MariaDB oder PostgreSQL) und ihre Version, das System des Servers (zum Beispiel Ubuntu 22.04) und ob Sie dort Pakete installieren dürfen, wie groß die Datenbank ist, wo die Kopien gespeichert werden sollen und wie viel Platz dort ist. Ihre Rotationsregeln: wie viele tägliche, wöchentliche und monatliche Kopien aufbewahrt werden. Für Premium der zweite Speicherort für Kopien und die Adresse für Fehler-E-Mails. Schicken Sie nie Passwörter oder Serverzugänge.

Wir fragen Sie:

  • Welche Datenbank, und wie groß ist sie?
  • Auf welchem Server liegt sie?
  • Wie viele Kopien sollen bleiben?
  • Wohin sollen die Kopien?
  • Bash oder Python?

Pakete vergleichen

PaketeBasisEine Datenbank15 €StandardBackup mit Einstellungen30 €PremiumBackup-Tool60 €
Lieferzeit1 Tag2 Tage3 Tage
Überarbeitungen123
Codebis zu 150 Zeilenbis zu 400 Zeilenbis zu 1.000 Zeilen
Code-Dateien1bis zu 3bis zu 8
EinstellungsdateiNeinJaJa
Verständliche Fehlermeldungen und ein ProtokollNeinJaJa
Startoptionen und eine Anleitung für den zeitgesteuerten StartNeinNeinJa
Anleitung zu Installation und Start (README)JaJaJa
SpracheBash oder PythonBash oder PythonBash oder Python
Bestellen BasisBestellen StandardBestellen Premium

Zahlungsschutz

Sie bezahlen bei der Bestellung, aber das Geld wird nur für abgenommene Arbeit freigegeben.

  • FestpreisDer Paketpreis ändert sich nach der Zahlung nicht mehr.
  • Das Geld wird reserviertBei der Zahlung wird der Betrag nur reserviert. Freigegeben wird er erst, wenn Sie die Arbeit abnehmen.
  • Vor der Lieferung geprüftJedes Ergebnis durchläuft eine Qualitätsprüfung, bevor es Sie erreicht, und Sie sehen es auf der Bestellseite, bevor Sie es abnehmen.
  • Kostenlose ÜberarbeitungenFordern Sie Überarbeitungen im Rahmen Ihres Briefings so oft an, wie das Paket es erlaubt.
  • Abnahme nach 3 TagenWenn Sie die Arbeit innerhalb von 3 Tagen nach der Lieferung weder abnehmen noch eine Überarbeitung anfordern, gilt sie automatisch als abgenommen. Schreiben Sie nach der Lieferung im Bestell-Chat, wartet die Bestellung; sobald wir antworten, können wir die 3 Tage neu starten und teilen das im Chat mit.
  • Neuanfertigung oder volle RückerstattungWenn das Ergebnis nicht Ihrem Briefing entspricht und die Überarbeitungen das nicht behoben haben oder die Arbeit mehr als doppelt so lange dauert wie die Frist, schreiben Sie im Bestell-Chat: Wir erstellen die Arbeit neu oder erstatten die Zahlung vollständig.
So funktioniert es →

Fragen und Antworten

Löscht es alte Backups?

Nur nach den Regeln, die Sie vorgeben, etwa 7 tägliche und 4 wöchentliche Kopien zu behalten, und nur im Backup-Ordner, in den es schreibt. Solange Sie keine Regeln festlegen, behält es alles.

Kann ich die Kopien außerhalb des Servers aufbewahren?

Premium kopiert jedes Backup auf eine zweite Festplatte oder in einen Speicher, den Sie bereits haben, mit dessen eigenem Kommandozeilenwerkzeug und Ihren eigenen Schlüsseln, die Sie selbst in seine Einstellungen eintragen.

Sperrt es die Website während des Laufs?

Bei InnoDB-Tabellen in MySQL und bei PostgreSQL wird der Dump erstellt, ohne die Website anzuhalten. Sehr große Datenbanken können sie trotzdem verlangsamen, starten Sie es also zu einer ruhigen Uhrzeit.

Richten Sie es auf meinem Server ein?

Nein. Wir melden uns nie auf Ihrem Server an. Die README zeigt jeden Schritt, vom Kopieren des Skripts bis zum Eintrag in cron (Premium).

Keine Antwort gefunden?

Pakete