[Eisfair_dev] Monitoring 0.4.0 Fehlermeldung
Juergen Edner
juergen at eisfair.org
Do Mär 22 16:37:12 CET 2018
Hallo zusammen,
>> Zeile 221:
>>
>> value=`cut -d " " -f$name /proc/loadavg | sed s/\\.//-e s/^0// -e
>> s/^0// 2>/dev/null`
>
> In der vorigen Version von monitoring.sh war die Zeile etwas kürzer:
>
> value=`cut -d " " -f$name /proc/loadavg | sed s/.\.// 2>/dev/null`
>
> Um zu verstehen, was sed da macht, müsste ich erstmal Zeit haben, um
> mich da reinzulesen.
die Sache ist eigentlich ganz einfach:
Annahme: name='1'
cut -d " " -f$name /proc/loadavg # nehme den Wert aus Spalte 1 einer
# Liste deren Werte durch ein Leer-
# zeichen getrennt werden
sed s/\\.// # suche nach allen Punkten im Wert
# und ersetzte diese durch nichts
# (Löschen)
sed s/^0// # Wenn der Wert mit einer Null
# beginnt, lösche diese
Wie bei allen Dingen lässt sich dieser Ausdruck natürlich optimieren.
Zur Erklärung, erst einmal sollte man sed-Ausdrücke möglichst immer
Klammern, dann kann man mehrere Ausdrücke jeweils mittels ' -e ' hinter
einander weg schreiben. Wenn man alle führenden Nullen entfernen möchte,
was hier vermutlich gewünscht ist, verwendet man am besten folgende
Schreibweise (Alles in einer Zeile):
value=`cut -d " " -f$name /proc/loadavg |
sed -e 's/\.//' -e 's/^0*//' 2>/dev/null`
Gruß Jürgen
--
Mail: juergen at eisfair.org
Mehr Informationen über die Mailingliste Eisfair_dev