Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > PHP/MySQL

PHP/MySQL Alles rund um die Programmiersprache PHP sowie MySQL.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26895, Antworten: 4218
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3323, Antworten: 122
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 302, Antworten: 19
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7639, Antworten: 185
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 19, Antworten: 0
Gehe zum ersten neuen Beitrag Captur 2.3 (Lion)
Aufrufe: 21, Antworten: 0
Gehe zum ersten neuen Beitrag Acer Aspire 8745ZG fährt...
Aufrufe: 55, Antworten: 6
Gehe zum ersten neuen Beitrag Rechner fährt herunter,...
Aufrufe: 144, Antworten: 9
Gehe zum ersten neuen Beitrag avs4you_com Lizenz oder Abo?
Aufrufe: 69, Antworten: 4
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50941, Antworten: 1395
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15.05.2008, 10:31   #1 (Direktlink)
Weiß worum´s geht
 
Benutzerbild von firetiger
 
Registriert seit: 29.06.2006
Ort: Zürich
Beiträge: 107
Standard Datensätze löschen - Datum > 7 Tage

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)
Vielen Dank schonmal im vorraus
__________________
Linux - Wer ehrlich ist, zeigt seine Quellen!
firetiger ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 15.05.2008, 20:49   #2 (Direktlink)
Dauergast
 
Registriert seit: 04.07.2004
Ort: Leipzig
Beiträge: 1.085
Standard

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');
ungetestet.
Zwirni ist offline   Mit Zitat antworten
Alt 29.05.2008, 13:50   #3 (Direktlink)
Weiß worum´s geht
 
Benutzerbild von firetiger
 
Registriert seit: 29.06.2006
Ort: Zürich
Beiträge: 107
Standard

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!
firetiger ist offline   Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > PHP/MySQL

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an




Alle Zeitangaben in WEZ +2. Es ist jetzt 03:03 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2