From b9fc2796e9b4a0624ce11ecc6bb1360cf187d5d5 Mon Sep 17 00:00:00 2001 From: Sebastian Serfling Date: Mon, 24 Mar 2025 09:37:59 +0100 Subject: [PATCH] ADD README --- README | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 README diff --git a/README b/README new file mode 100644 index 0000000..8ba9730 --- /dev/null +++ b/README @@ -0,0 +1,125 @@ +# MySQL Timestamp Check + +Ein Python-Skript zur Überwachung von MySQL-Tabellen, um sicherzustellen, dass die Daten täglich aktualisiert werden. + +## Funktionsweise + +Das Skript prüft alle Tabellen, die mit dem Präfix "RAW." beginnen, und überprüft, ob der letzte Zeitstempel in der Spalte "add_date" vom Vortag (gestern) stammt. Falls eine oder mehrere Tabellen nicht aktuell sind, wird eine Benachrichtigungs-E-Mail gesendet. + +## Hauptfunktionen + +- Automatische Erkennung aller Tabellen mit dem Präfix "RAW." +- Überprüfung des letzten Zeitstempels (standardmäßig in der Spalte "add_date") +- E-Mail-Benachrichtigung bei nicht aktuellen Tabellen +- Testmodus zur Simulation ohne E-Mail-Versand +- Konfiguration über .env-Datei oder Kommandozeilenparameter + +## Voraussetzungen + +- Python 3.6 oder höher +- Zugriff auf eine MySQL-Datenbank +- Folgende Python-Pakete: + - mysql-connector-python + - python-dotenv + +Installation der benötigten Pakete: +```bash +pip install mysql-connector-python python-dotenv +``` + +## Konfiguration + +Erstellen Sie eine `.env`-Datei im gleichen Verzeichnis wie das Skript mit folgendem Inhalt: + +``` +# Datenbank-Konfiguration +MYSQL_HOST=dein-mysql-server +MYSQL_USER=username +MYSQL_PASSWORD=passwort +MYSQL_DATABASE=deine_db + +# E-Mail-Konfiguration +EMAIL_SENDER=absender@example.com +EMAIL_RECEIVER=empfaenger@example.com +SMTP_SERVER=smtp.example.com +SMTP_PORT=587 +SMTP_USER=smtp_username +SMTP_PASSWORD=smtp_passwort +``` + +## Verwendung + +### Standardverwendung + +```bash +python mysql_timestamp_check.py +``` + +### Testmodus (keine E-Mail-Versendung) + +```bash +python mysql_timestamp_check.py --test +``` + +### Mit abweichender Zeitstempel-Spalte + +```bash +python mysql_timestamp_check.py --timestamp-column=andere_datum_spalte +``` + +### Überschreiben von .env-Einstellungen + +Alle Parameter aus der .env-Datei können auch über die Kommandozeile überschrieben werden: + +```bash +python mysql_timestamp_check.py --host=anderer-host --user=anderer-user --password=anderes-passwort +``` + +## Vollständige Parameterliste + +``` +--host MySQL-Hostadresse (Standard: aus .env MYSQL_HOST) +--user MySQL-Benutzername (Standard: aus .env MYSQL_USER) +--password MySQL-Passwort (Standard: aus .env MYSQL_PASSWORD) +--database MySQL-Datenbankname (Standard: aus .env MYSQL_DATABASE) +--timestamp-column Name der Zeitstempel-Spalte (Standard: add_date) +--test Testmodus: Keine E-Mail senden, nur Ausgabe auf der Konsole +--email-sender Absender-E-Mail-Adresse (Standard: aus .env EMAIL_SENDER) +--email-receiver Empfänger-E-Mail-Adresse (Standard: aus .env EMAIL_RECEIVER) +--smtp-server SMTP-Server-Adresse (Standard: aus .env SMTP_SERVER) +--smtp-port SMTP-Server-Port (Standard: aus .env SMTP_PORT) +--smtp-user SMTP-Benutzername (Standard: aus .env SMTP_USER) +--smtp-password SMTP-Passwort (Standard: aus .env SMTP_PASSWORD) +``` + +## Automatisierung + +Um das Skript täglich automatisch ausführen zu lassen, können Sie einen Cronjob einrichten: + +```bash +# Öffnen der crontab +crontab -e + +# Fügen Sie die folgende Zeile hinzu, um das Skript täglich um 8:00 Uhr auszuführen +0 8 * * * /usr/bin/python3 /pfad/zu/mysql_timestamp_check.py +``` + +## Fehlerbehebung + +### Bekannte Probleme + +- **Keine Verbindung zur Datenbank möglich**: Überprüfen Sie die Datenbankverbindungsparameter in der .env-Datei. +- **Keine E-Mail wird gesendet**: Stellen Sie sicher, dass die SMTP-Konfiguration korrekt ist. Verwenden Sie den Testmodus `--test`, um die gefundenen Probleme ohne E-Mail-Versand anzuzeigen. +- **Skript kann keine Tabellen finden**: Stellen Sie sicher, dass Tabellen mit dem Präfix "RAW." in der Datenbank existieren. + +### Debug-Tipps + +Für detailliertere Fehlerinformationen führen Sie das Skript im Testmodus aus: + +```bash +python mysql_timestamp_check.py --test +``` + +## Lizenz + +Dieses Skript ist für den internen Gebrauch bestimmt und unterliegt keiner speziellen Open-Source-Lizenz, sofern nicht anders angegeben. \ No newline at end of file