[BASH] Tageswerte ermitteln

brenner

Commander
Dabei seit
Apr. 2002
Beiträge
2.908
Ich würde gerne aus einem ständig steigenden Werte, die Tages-, Monats- und Jahresdifferenz ermitteln.

Da das Script nicht durchgehend läuft, sondern immer alle 5 Minuten, müssen die Werte in eine Textdatei (oder gerne auch was passenderes) abgelegt werden.

Meine ersten Versuche sehen in etwas so aus:


Code:
#Wert rauscutten
a=$(echo CGET CUX2711111:1 | nc localhost 6770 -q 1 | awk -F " " '{print $3}' | awk -F ":" '{print $2}')
#Wert in eine Textdatei schreiben
echo $a >../usr/share/cacti/site/scripts/ESA-log.txt

#Datei einlesen
z=$(head -2 ../usr/share/cacti/site/scripts/ESA-log.txt)

#Wert subtrahieren für Tagesergebnis
b=$(echo "$a $z" | awk '{ print($1 - $2) }')

#Tageswert ausgeben
echo "Tageswert:"$b"
Was ich noch nicht hinbekomme ist da zeitliche Abläufe reinzubekommen. Also z.B. wenn Nachts zw. 00:00-00:06 (um die 5 Minutenabfrage einzufangen) schreibe Werte in Datei.
Wenn wieder zw. 00:00-00:06 dann nehme aktuellen Wert, subtrahiere in von dem Wert in der Textdatei, gebe ihn aus und schreibe aktuellen Wert in die Textdatei.
 

Da Biggy

Lt. Junior Grade
Dabei seit
Juni 2010
Beiträge
432
klappt die Subtraktion von deinem Tagesergebnis? Auch ohne Linuxergebnis sieht es aus, wäre in Zeile 10 in Verbindung mit Zeilte 1 ein Fehler. Aber wie gesagt nur normale Programmiererfahrungen..
 

brenner

Commander
Ersteller dieses Themas
Dabei seit
Apr. 2002
Beiträge
2.908
Zumindestens im aktuellen Script, welches den Diff zwischen zwei 5-Minutenaufrufen macht, funktioniert es. D

Das soll angeblich der einzige Weg sein auch "kommazahlen" zu subtrahieren in der Bash, aber ich habe es nur so gelesen und angewandt, ich lasse mich da gerne eines besseren belehren.


Zeile 10 mit Zeile 1 ergeben Fehler?
Das ist übrigens kein komplettes Script sondern nur der Auszug der für mich relevanten Funktionen, bzw. Funktionen mir den ich denke das es laufen könnte.
 
Top