ADD README
commit
b9fc2796e9
|
|
@ -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.
|
||||
Loading…
Reference in New Issue