![]() |
Anzeige:
|
|
|||||||
| PHP/MySQL Alles rund um die Programmiersprache PHP sowie MySQL. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 29.06.2006
Ort: Zürich
Beiträge: 107
|
Hallo!
Ich habe einen Nagios Server, der an eine MySQL DB angebunden ist. Der Nagios Server schreibt ständig seine Hostchecks (Statusinformationen, die er alle 2 min. von den Clients abruft) in diese DB. Nach einem Monat ist die DB bereits 116 MB gross. Und jetzt will ich nur die die Daten in der DB haben, die eine Woche alt sind. Alles was älter als 1 woche ist, soll per Shell Skript gelöscht werden. Ich weiss jetzt aber nicht, wie der genaue SQL String aussehen muss, damit er mir aus einer Tabelle alle Datensätze löscht, die älter als 1 Woche sind. Kann mir jemand sagen wie der String aussehen muss? Hier ein Select der Tabelle: nagios_hostchescks Code:
mysql> SELECT hostcheck_id, start_time, command_line, execution_time FROM nagios_hostchecks WHERE start_time = '2008-05-08 05:40:00'; +--------------+---------------------+-------------------------------+----------------+ | hostcheck_id | start_time | command_line | execution_time | +--------------+---------------------+-------------------------------+----------------+ | 194768 | 2008-05-08 05:40:00 | check_ping -H 192.168.150.4 | 4.04988 | | 194769 | 2008-05-08 05:40:00 | check_ping -H 192.168.150.250 | 4.05726 | | 194770 | 2008-05-08 05:40:00 | check_ping -H 192.168.150.12 | 4.07629 | | 194771 | 2008-05-08 05:40:00 | check_ping -H 192.168.120.182 | 4.12047 | | 194772 | 2008-05-08 05:40:00 | check_ping -H 192.168.150.252 | 4.083 | | 194773 | 2008-05-08 05:40:00 | check_ping -H 192.168.150.251 | 4.03167 | | 194774 | 2008-05-08 05:40:00 | check_ping -H 192.168.120.180 | 4.05318 | | 194775 | 2008-05-08 05:40:00 | check_ping -H 192.168.120.99 | 4.04234 | +--------------+---------------------+-------------------------------+----------------+ 8 rows in set (0.00 sec)
__________________
Linux - Wer ehrlich ist, zeigt seine Quellen! |
|
|
|
|
|
|
#2 (Direktlink) |
|
Dauergast
![]() Registriert seit: 04.07.2004
Ort: Leipzig
Beiträge: 1.085
|
Das ist kein String den du suchst sondern ein Statement. Du müsstest nur mal mit dem select-Statement herumprobieren um zu erkennen wie es geht. Stichwort ist date_sub(). Beispiel:
Code:
SELECT hostcheck_id, start_time, command_line, execution_time FROM nagios_hostchecks WHERE start_time <= date_format(date_sub(now(),interval 1 week),'%Y-%m-%d %H:%i:%s'); |
|
|
|
|
|
#3 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 29.06.2006
Ort: Zürich
Beiträge: 107
|
Danke für deinen schnelle Antwort Zwirni.
Bin leider erst jetzt zum ausprobieren gekommen. Es Funktioniert jetzt. Lösung: Code:
DELETE FROM nagios_hostchecks WHERE start_time < DATE_SUB(CURDATE(),INTERVAL 1 WEEK);
__________________
Linux - Wer ehrlich ist, zeigt seine Quellen! |
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|