Exempelscript för att ta bort tillfällig störning

RRDTool är en Linuxmjukvara som kan användas för att lagra data i Round-Robin Databaser för att sedan generera grafer utifrån den lagrade datan.
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5434
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Exempelscript för att ta bort tillfällig störning

Inlägg av elf98 »

Jag har en hel del script liggandes, allt eftersom jag använder dem/skriver dem skall jag försöka posta dem här.

Idag lyckades jag få in skräp i alla databaserna - 389st.

Att korrigera ett par rader i någon enstaka fil är ju inte något problem, men nästan 400 filer editerar man inte för hand.

Följande script tar bort temperaturer vid de specade tiderna och ersätter dem med NaN. Snyggare kankse vore att interpolera fram temperaturerna, men den här gången är det ca 20 minuter som skall bort och då är det inte värt besväret.

Scriptet är inte effektivt på något sätt och kan skrivas på många bättre sätt - men det spelar inte någon större roll att det äter resurser - det skall förhoppningsvis bara köras en gång.

Kod: Markera allt

#!/bin/bash
FILES=/special/termo/rrdb/*
for f in $FILES
do
        echo "Processing $f file..."
        echo -n "."
        # take action on each file. $f store current file name
        rrdtool dump $f > /tmp/tmp.xml
        echo -n "."
        sed 's/2010-08-31 15:00:00 CEST \/ 1283259600 --> <row><v>.*<\/v>/2010-08-31 15:00:00 CEST \/ 1283259600 --> <row><v> NaN <\/v>/g' /tmp/tmp.xml >/tmp/tmp2.xml
        echo -n "."
        sed 's/2010-08-31 14:38:00 CEST \/ 1283258280 --> <row><v>.*<\/v>/2010-08-31 14:38:00 CEST \/ 1283258280 --> <row><v> NaN <\/v>/g' /tmp/tmp2.xml >/tmp/tmp3.xml
        echo -n "."
        sed 's/2010-08-31 14:40:00 CEST \/ 1283258400 --> <row><v>.*<\/v>/2010-08-31 14:40:00 CEST \/ 1283258400 --> <row><v> NaN <\/v>/g' /tmp/tmp3.xml >/tmp/tmp4.xml
        echo -n "."
        sed 's/2010-08-31 14:42:00 CEST \/ 1283258520 --> <row><v>.*<\/v>/2010-08-31 14:42:00 CEST \/ 1283258520 --> <row><v> NaN <\/v>/g' /tmp/tmp4.xml >/tmp/tmp5.xml
        echo -n "."
        sed 's/2010-08-31 14:44:00 CEST \/ 1283258640 --> <row><v>.*<\/v>/2010-08-31 14:44:00 CEST \/ 1283258640 --> <row><v> NaN <\/v>/g' /tmp/tmp5.xml >/tmp/tmp6.xml
        echo -n "."
        sed 's/2010-08-31 14:46:00 CEST \/ 1283258760 --> <row><v>.*<\/v>/2010-08-31 14:46:00 CEST \/ 1283258760 --> <row><v> NaN <\/v>/g' /tmp/tmp6.xml >/tmp/tmp7.xml
        echo -n "."
        sed 's/2010-08-31 14:48:00 CEST \/ 1283258880 --> <row><v>.*<\/v>/2010-08-31 14:48:00 CEST \/ 1283258880 --> <row><v> NaN <\/v>/g' /tmp/tmp7.xml >/tmp/tmp8.xml
        echo -n "."
        sed 's/2010-08-31 14:50:00 CEST \/ 1283259000 --> <row><v>.*<\/v>/2010-08-31 14:50:00 CEST \/ 1283259000 --> <row><v> NaN <\/v>/g' /tmp/tmp8.xml >/tmp/tmp9.xml
        echo -n "."
        sed 's/2010-08-31 14:52:00 CEST \/ 1283259120 --> <row><v>.*<\/v>/2010-08-31 14:52:00 CEST \/ 1283259120 --> <row><v> NaN <\/v>/g' /tmp/tmp9.xml >/tmp/tmp10.xml
        echo -n "."
        sed 's/2010-08-31 14:54:00 CEST \/ 1283259240 --> <row><v>.*<\/v>/2010-08-31 14:54:00 CEST \/ 1283259240 --> <row><v> NaN <\/v>/g' /tmp/tmp10.xml >/tmp/tmp11.xml
        echo -n "."
        sed 's/2010-08-31 14:56:00 CEST \/ 1283259360 --> <row><v>.*<\/v>/2010-08-31 14:56:00 CEST \/ 1283259360 --> <row><v> NaN <\/v>/g' /tmp/tmp11.xml >/tmp/tmp12.xml
        echo -n "."
        sed 's/2010-08-31 14:58:00 CEST \/ 1283259480 --> <row><v>.*<\/v>/2010-08-31 14:58:00 CEST \/ 1283259480 --> <row><v> NaN <\/v>/g' /tmp/tmp12.xml >/tmp/tmp13.xml
        echo -n "."
        mv $f $f.save
        rrdtool restore /tmp/tmp13.xml $f
done
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild