# 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.