Extraktion von Service value`s nach csv

Hi,

Ich brauche mal Hilfe und stehe etwas auf dem Schlauch

Ich brauche von einem Service die Werte als Tabelle

z.B. der Service subscriber hat am 01.01 09:00 den Wert 1

nun brauche ich alle Werte von da an bis z.B. 01.01 13:00 Wert 0

lG Bernd

hab das so gelöst bin aber offen für andere Lösungen

checkmk_export_flex.sh

#!/bin/bash

# Hilfe bei falschen Argumenten
if [ "$#" -lt 3 ]; then
    echo "Benutzung:"
    echo "  1. Letzte 24h: $0 <host> <service> <MODE>"
    echo "  2. Zeitraum:   $0 <host> <service> <MODE> \"YYYY-MM-DD HH:MM\" \"YYYY-MM-DD HH:MM\""
    echo ""
    echo "Beispiel: $0 dezili CPU_load MAX \"2026-05-07 10:00\" \"2026-05-07 14:00\""
    exit 1
fi

HOST="$1"
SERVICE="${2// /_}"
MODE="$3"

# Zeitlogik
if [ "$#" -eq 5 ]; then
    # Benutzerdefinierter Zeitraum
    EPOCH_START=$(date -d "$4" +%s)
    EPOCH_END=$(date -d "$5" +%s)
else
    # Default: Letzte 24 Stunden
    EPOCH_START=$(date --date='24 hours ago' +%s)
    EPOCH_END=$(date +%s)
fi

# Pfad zur RRD-Datei
RRD_FILE="$OMD_ROOT/var/check_mk/rrd/${HOST}/${SERVICE}.rrd"

if [[ ! -f "$RRD_FILE" ]]; then
    echo "Fehler: Datei nicht gefunden: $RRD_FILE"
    exit 1
fi

echo "--- Export: $HOST | $SERVICE | Modus: $MODE ---"
echo "Zeitraum: $(date -d @$EPOCH_START) bis $(date -d @$EPOCH_END)"
echo "------------------------------------------------------------"
echo "Zeitstempel;Werte"

# Abfrage und Formatierung
rrdtool fetch "$RRD_FILE" "$MODE" --start "$EPOCH_START" --end "$EPOCH_END" | \
awk -F': ' '
    NR > 2 {
        timestamp = $1;
        gsub(/^[ \t]+|[ \t]+$/, "", timestamp);
        values_raw = $2; 
        
        if (values_raw !~ /nan/ && values_raw != "") {
            # Datum konvertieren
            cmd = "date -d @" timestamp " +\"%d.%m.%Y %H:%M:%S\""
            cmd | getline readable
            close(cmd)
            
            split(values_raw, v, " ");
            output_line = readable;
            for (i=1; i<=length(v); i++) {
                if (v[i] != "") {
                    output_line = output_line ";" sprintf("%.2f", v[i]);
                }
            }
            print output_line;
        }
    }'