Seite 1 von 1

[3.3] Skript um Forums-Protokolle gezielter teilweise zu löschen

Verfasst: 09.02.2021 19:56
von HaioPaio
Die Forums-Protokolle im ACP können ja nur über das selektieren der Kästchen gelöscht werden, oder alles auf einmal.
Wenn ich aber die Einträge der letzten 4 Wochen behalten möchte, und ein Protokoll mit 126 Seiten habe, muss ich jede Seite einzeln händisch bearbeiten.
Ich hätte gerne ein Skript das ich in phpMyAdmin ausführen kann und das alle Einträge in einem Protokoll die älter als ein Stichtag sind, auf eine Schlag löscht.
Ich müsste also manuell angeben: Betroffenes Protokoll, betroffene Foren oder Alle, Stichtag.

Hätte jemand Lust mir hier aufs Pferd zu helfen. Ich weiß zu wenig um das alleine zu schaffen.

Re: [3.3] Skript um Forums-Protokolle gezielter teilweise zu löschen

Verfasst: 09.02.2021 20:15
von Dr.Death
DELETE FROM phpbb_log WHERE

log_type=

0 = Admin Log
1 = Moderator Log
2 = Fehler Log
3 = Benutzer Log

AND

log_time < gewünschter UTC Timestamp.


Du müsstest also den aktuellen Timestamp ermitteln, davon 4 Wochen abziehen und einsetzen.

Beispiel: https://www.epochconverter.com
The current Unix epoch time is 1612897582

Dort den aktuellen Monat um 1 verringern (oder die Anzahl vom Sekunden vom jetzigen Timestamp rechnerisch abziehen)
Saturday, 9. January 2021 19:05:52
Human date to Timestamp
Epoch timestamp: 1610219152

Sähe dann ggf. so aus um das Admin Protokoll zu löschen.... (lösche alle vom log_type 0 wenn der Eintrag älter als das Datum Saturday, 9. January 2021 19:05:52 (Timestamp = 1610219152) ist:

DELETE FROM phpbb_log WHERE log_type = 0 AND log_time < 1610219152

Wenn du alle Logfiles älter als das gewünschte Datum löschen möchtest:
DELETE FROM phpbb_log WHERE log_time < 1610219152


Aber wie immer gilt bei SQL Statements aus dritter Hand: Mach vorher ein Datenbank Backup

Re: [3.3] Skript um Forums-Protokolle gezielter teilweise zu löschen

Verfasst: 09.02.2021 20:43
von HaioPaio
Doc
Vielen Dank für die schnelle Hilfe. Damit komme ich zurecht.