Sida 1 av 1

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

Postat: 31 aug 2010, 19:49
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