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