|
|
||
|---|---|---|
| .env | ||
| README.md | ||
| mysql_timestamp_check.py | ||
README.md
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 "RAW." im Namen enthalten, und überprüft, ob irgendein Zeitstempel in der Spalte "add_date" vom Vortag (gestern) existiert. Falls eine oder mehrere Tabellen keine Daten von gestern haben, wird eine Benachrichtigungs-E-Mail gesendet.
Hauptfunktionen
- Automatische Erkennung aller Tabellen mit "RAW." im Namen
- Überprüfung, ob Zeitstempel von gestern existieren (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:
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
python mysql_timestamp_check.py
Testmodus (keine E-Mail-Versendung)
python mysql_timestamp_check.py --test
Mit abweichender Zeitstempel-Spalte
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:
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 mit Bash-Skript
chmod +x run_timestamp_check.sh
Cronjob-Einrichtung
Um das Skript täglich automatisch ausführen zu lassen, können Sie einen Cronjob einrichten:
# Öffnen der crontab
crontab -e
# Fügen Sie die folgende Zeile hinzu, um das Skript täglich um 8:00 Uhr auszuführen
0 4 * * * /pfad/zu/run_timestamp_check.sh
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 "RAW." im Namen in der Datenbank existieren.
Debug-Tipps
Für detailliertere Fehlerinformationen führen Sie das Skript im Testmodus aus:
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.