Hallo,
wie mache ich denn in einem Bash-Skript eine Abfrage, die mir sagt ob /dev/hda2 >= 80% (Auswertung aus: df /dev/hda2) benutzt ist?
if [???]; then
Anweisung
fi
Grüsse
K.
Hallo,
wie mache ich denn in einem Bash-Skript eine Abfrage, die mir sagt ob /dev/hda2 >= 80% (Auswertung aus: df /dev/hda2) benutzt ist?
if [???]; then
Anweisung
fi
Grüsse
K.
Hallo Klaus.
wie mache ich denn in einem Bash-Skript eine Abfrage, die mir
sagt ob /dev/hda2 >= 80% (Auswertung aus: df /dev/hda2)
benutzt ist?
Zum Beispiel mit folgendem Einzeiler:
$ dev=/dev/sda5; max=60; usage=$(df $dev | awk 'NR == 2 { print $5; }' | sed -e 's/%//'); if (( $usage \> $max )); then echo "ALARM"; fi
ALARM
Hier noch meine verwendete df-Ausgabe sowie die Programmversionen:
$ df /dev/sda5
Dateisystem 1K-Blöcke Benutzt Verfügbar Ben% Eingehängt auf
/dev/sda5 20641788 13038732 6554416 67% /
$ echo $BASH\_VERSION
3.1.16(1)-release
$ awk --version
GNU Awk 3.1.5
$ sed --version
GNU sed Version 4.1.4
Gruß,
-Andreas.
Hi,
wie mache ich denn in einem Bash-Skript eine Abfrage, die mir
sagt ob /dev/hda2 >= 80% (Auswertung aus: df /dev/hda2)
benutzt ist?
Als besonderen Fallstrick gibt’s da noch, dass df die Ausgabe eines devices gerne auch mal auf zwei Zeilen darstellt, wenn der devicename zu lang wird.
if [???]; then
Anweisung
fi
Ich wuerde es daher ungefaehr so:
if ["`df /dev/hda2 |tail -n1 |sed 's/^.* \([0-9]*\)%.*$/\1/'`" -gt 90 ]; then echo "Papierkorb leeren."; fi
oder, wenn man keine Scheu vor verknotetem sed hat, so:
if ["`df /dev/hda2 |sed -n '${s/^.* \([0-9]*\)%.*$/\1/;p}'`" -gt 90 ]; then echo "Papierkorb leeren."; fi
machen
HTH,
Gruss vom Frank.
Hallo,
… und vielen Dank.
Das hat mir weiter geholfen :o)
Grüsse
K
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]