Hallo,
ich lese die Speicherauslastung mehrerer Rechner aus und möchte in einem übergeordneten Script die Daten auswerten
aktuell habe ich es so:
liefert mir das richtige Ergebnis, jedoch ist es lt. MySQL-Sezifikation falsch, da ich free und usage im select aber nicht im group by habe und auch keine Aggregationsfunktion darauf anwende. wenn ich dies aber tue, passt mein ergebnis nicht mehr.
meine Tabelle sieht so aus:
beispieldaten:
Ergebnis sollte so sein (alle Datensätze mit dem aktuellsten Zeitstempel über alle hostnames und mountpoints):
schön wäre es, wenn ich den vorletzten Datensatz (jeweils "2018-12-05 14:00:01") mit ranjoinen könnte (dafür würde noch ein tinyint-flag dazukommen).
ich habe schon bei google gesucht, aber die Lösungen sehen recht komplex aus (mit variablen und subqueries) und ich habe die noch nicht hinbekommen auf meine doch recht einfache Tabelle
Gruß Frank
ich lese die Speicherauslastung mehrerer Rechner aus und möchte in einem übergeordneten Script die Daten auswerten
aktuell habe ich es so:
Code:
select max(created),hostname,mountpoint,free,`usage` from diskfree group by hostname,mountpoint
meine Tabelle sieht so aus:
Code:
CREATE TABLE `diskfree` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `hostname` VARCHAR(6) NOT NULL COLLATE 'utf8_unicode_ci', `mountpoint` VARCHAR(15) NOT NULL COLLATE 'utf8_unicode_ci', `free` INT(11) NOT NULL COMMENT 'freier Speicher (Avail) in MB', `usage` INT(11) NOT NULL COMMENT 'belegt (Use) in %', PRIMARY KEY (`id`), INDEX `created` (`created`), INDEX `hostname` (`hostname`), INDEX `mountpoint` (`mountpoint`) ) COLLATE='utf8_unicode_ci' ENGINE=MyISAM AUTO_INCREMENT=16753 ;
Code:
INSERT INTO `diskfree` (`created`, `hostname`, `mountpoint`, `free`, `usage`) VALUES ('2018-12-05 14:15:02', 'QDE02L', '/var', 16340, 15); INSERT INTO `diskfree` (`created`, `hostname`, `mountpoint`, `free`, `usage`) VALUES ('2018-12-05 14:15:02', 'QDE02L', '/', 1685, 52); INSERT INTO `diskfree` (`created`, `hostname`, `mountpoint`, `free`, `usage`) VALUES ('2018-12-05 14:15:01', 'QDE02M', '/home', 3620, 33); INSERT INTO `diskfree` (`created`, `hostname`, `mountpoint`, `free`, `usage`) VALUES ('2018-12-05 14:15:01', 'QDE02M', '/', 44988, 6); INSERT INTO `diskfree` (`created`, `hostname`, `mountpoint`, `free`, `usage`) VALUES ('2018-12-05 14:15:01', 'QDE02N', '/var', 8709, 9); INSERT INTO `diskfree` (`created`, `hostname`, `mountpoint`, `free`, `usage`) VALUES ('2018-12-05 14:15:01', 'QDE02N', '/', 1132, 68); INSERT INTO `diskfree` (`created`, `hostname`, `mountpoint`, `free`, `usage`) VALUES ('2018-12-05 14:00:01', 'QDE02L', '/var', 16340, 15); INSERT INTO `diskfree` (`created`, `hostname`, `mountpoint`, `free`, `usage`) VALUES ('2018-12-05 14:00:01', 'QDE02L', '/', 1685, 52); INSERT INTO `diskfree` (`created`, `hostname`, `mountpoint`, `free`, `usage`) VALUES ('2018-12-05 14:00:01', 'QDE02M', '/home', 3620, 33); INSERT INTO `diskfree` (`created`, `hostname`, `mountpoint`, `free`, `usage`) VALUES ('2018-12-05 14:00:01', 'QDE02M', '/', 44988, 6); INSERT INTO `diskfree` (`created`, `hostname`, `mountpoint`, `free`, `usage`) VALUES ('2018-12-05 14:00:01', 'QDE02N', '/var', 8709, 9); INSERT INTO `diskfree` (`created`, `hostname`, `mountpoint`, `free`, `usage`) VALUES ('2018-12-05 14:00:01', 'QDE02N', '/', 1132, 68); INSERT INTO `diskfree` (`created`, `hostname`, `mountpoint`, `free`, `usage`) VALUES ('2018-12-05 13:45:02', 'QDE02N', '/var', 8709, 9); INSERT INTO `diskfree` (`created`, `hostname`, `mountpoint`, `free`, `usage`) VALUES ('2018-12-05 13:45:02', 'QDE02N', '/', 1132, 68); INSERT INTO `diskfree` (`created`, `hostname`, `mountpoint`, `free`, `usage`) VALUES ('2018-12-05 13:45:01', 'QDE02M', '/home', 3620, 33); INSERT INTO `diskfree` (`created`, `hostname`, `mountpoint`, `free`, `usage`) VALUES ('2018-12-05 13:45:01', 'QDE02M', '/', 44988, 6); INSERT INTO `diskfree` (`created`, `hostname`, `mountpoint`, `free`, `usage`) VALUES ('2018-12-05 13:45:01', 'QDE02L', '/var', 16340, 15); INSERT INTO `diskfree` (`created`, `hostname`, `mountpoint`, `free`, `usage`) VALUES ('2018-12-05 13:45:01', 'QDE02L', '/', 1685, 52);
Code:
"created" "hostname" "mountpoint" "free" "usage" "2018-12-05 14:15:02" "QDE02L" "/var" "16340" "15" "2018-12-05 14:15:02" "QDE02L" "/" "1685" "52" "2018-12-05 14:15:01" "QDE02M" "/home" "3620" "33" "2018-12-05 14:15:01" "QDE02M" "/" "44988" "6" "2018-12-05 14:15:01" "QDE02N" "/var" "8709" "9" "2018-12-05 14:15:01" "QDE02N" "/" "1132" "68"
ich habe schon bei google gesucht, aber die Lösungen sehen recht komplex aus (mit variablen und subqueries) und ich habe die noch nicht hinbekommen auf meine doch recht einfache Tabelle
Gruß Frank
Kommentar