Check die Timestamp in RAW Tables von der Datenbank Kunden
 
 
Go to file
Sebastian Serfling b9fc2796e9 ADD README 2025-03-24 09:37:59 +01:00
README ADD README 2025-03-24 09:37:59 +01:00

README

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