Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe und besinnliche Weihnachten!

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste
Mybb(Mysql) Datenbank Spalten eines Tables Minütlich leeren
#1
Hey ihr,

benutze jetzt MyBB schon eine weile und ich habe auch schon einige sachen gesucht aber halt nix gefunden, ich würde gern aus der Datenbank, die Spalten mit den IP's aus den tablen (sind ja mehrere) alle 15Minuten leeren, da ich nur alte Threads über das deaktivieren des Loggings gefunden habe und sich die Funktionen anscheinend geändert haben(inc/functions.php), stelle ich mir nun die Frage ob ihr vllt eine Ahnung habt, wie ich das oben genannte "Problem" lösen kann. Entweder durch das ändern der IP Funktion oder durch das leeren der entsprechenden Spalten eventuell mittels Cronjob oder sonstigem, wäre ziemlich nett. Smile

P.S.: Ich bin im besitz eines VPS und habe vollen Zugriff

Mfg
Zitieren
#2
Keiner eine Idee ? :/
Zitieren
#3
Habs jetzt mit n bisschen php gemacht, ist mir eingefallen, könnte ja auch darüber gehen:


PHP-Code:
<?php
mysql_connect
("DB-Host""User""Passwort") or die("Konnte nicht mit MySQL verbinden");
mysql_select_db("DB-Name") or die("Fehler beim auswählen der Datenbank");
mysql_query("UPDATE mybb_adminlog SET ipaddress=0") or die("Fehler beim leeren der Tabelle");
mysql_query("UPDATE mybb_adminsessions SET ip=0") or die("Fehler beim leeren der Tabelle");
mysql_query("UPDATE mybb_moderatorlog SET ipaddress=0") or die("Fehler beim leeren der Tabelle");
mysql_query("UPDATE mybb_posts SET ipaddress=0") or die("Fehler beim leeren der Tabelle");
mysql_query("UPDATE mybb_privatemessages SET ipaddress=0") or die("Fehler beim leeren der Tabelle");
mysql_query("UPDATE mybb_searchlog SET ipaddress=0") or die("Fehler beim leeren der Tabelle");
mysql_query("UPDATE mybb_sessions SET ip=0") or die("Fehler beim leeren der Tabelle");
mysql_query("UPDATE mybb_threadratings SET ipaddress=0") or die("Fehler beim leeren der Tabelle");
mysql_query("UPDATE mybb_users SET regip=0, lastip=0") or die("Fehler beim leeren der Tabelle");
?>


Das ist mal der PHP-Code, dieser umfasst alle IP's die von MyBB geloggt werden, dann einfach per Cronjob alle 15 minuten mit:

*/15 * * * * php5 /Pfad/zum/Script/script.php

Anstatt php5 müsst ihr manchmal den genauen Pfad zu php angeben.
Zitieren
#4
Etwas verspätet, aber dennoch

eine weitere Idee zum Thema:
MySQL bietet einen "Event Scheduler".
Hiermit kann man die Datenbank selbst veranlassen, bestimmte Aufgaben auszuführen. Vielleicht wäre das eine alternative Option.


Ansonsten ein weiterer Vorschlag zu deinem PHP-Script:

PHP-Code:
...
mysql_query("
UPDATE mybb_adminlog SET ipaddress = 0;
UPDATE mybb_adminsessions SET ip = 0;
UPDATE mybb_moderatorlog SET ipaddress = 0;
UPDATE mybb_posts SET ipaddress = 0;
UPDATE mybb_privatemessages SET ipaddress = 0;
UPDATE mybb_searchlog SET ipaddress = 0;
UPDATE mybb_sessions SET ip = 0;
UPDATE mybb_threadratings SET ipaddress = 0;
UPDATE mybb_users SET regip = 0, lastip = 0;"
) or die("Fehler beim leeren der Tabellen"); 

Damit ersparst du dir die vielen Queries und führst alle zusammen aus Smile


Und eine weitere Alternative:
Wenn du schon über die UNIX-Shell auf den Cron Daemon zurückgreifst, dann kannst du den Umweg über PHP auch einsparen und direkt mittels mysql-Konsole die Querys absetzen Smile


[ExiTuS]
MyBB + innovative Themes:
NokiaPort.de Forum Nokia-Traditionsforum seit 2006.
Live Escape Game Forum Diskussionsplattform für Escape-Rooms.
Unlösbares Problem, Dilemma? -> das Nötel Smile
Zitieren