[+] Bash - sprawdzanie zaj

Potrzebujesz pomocy z C, C++, perl, python, itp.
ksysinek
Beginner
Posty: 155
Rejestracja: 14 czerwca 2007, 00:33
Lokalizacja: *Miasto know-how

[+] Bash - sprawdzanie zajętości dysku

Post autor: ksysinek »

Witam. Napisałem skrypt do oczyszczania dysku. Chcę go wywoływać tylko wtedy, gdy użycie dysku jest większe niż 90%. W związku z tym napisałem pomocniczy skrypt:

Kod: Zaznacz cały

df -h | tail -n 3 | head -n 1 | cut -c41-42 > tmp
DF=`cat tmp`
if [ $DF >= "90" ]
then
echo "Zużycie dysku większe niż 90%"
(reszta regułek do oczyszczenia dysku)
else
echo "Użycie dysku w normie"
fi
Obecnie, gdy moje użycie dysku wynosi 87% dostaję coś takiego:

Kod: Zaznacz cały

./df.h
./df.h: line 3: [: 87: unary operator expected
Użycie dysku w normie
Czy ktoś mógłby mi powiedzieć, dlaczego tak się dzieje? Pozdrawiam.
jedi1
Posty: 46
Rejestracja: 08 maja 2007, 17:08
Lokalizacja: Gdynia

Post autor: jedi1 »

Z tego co wiem to powinno być

Kod: Zaznacz cały

 if [ $DF -ge "90" ]
sigo
Junior Member
Posty: 501
Rejestracja: 21 marca 2009, 19:12

Post autor: sigo »

Bo prawdę mówi. Bash różni się trochę od większości języków programowania.

Poprawiłem minimalnie Twoją wersję, wywaliłem używanie pliku tymczasowego (po co go tworzyć?). Można też użyć awka albo jakiegoś parametru df zamiast cuta

Kod: Zaznacz cały

#!/bin/bash

df=`df -h | tail -n 3 | head -n 1 | cut -c41-42`

if [ $df -ge 90 ]
then
echo "Zużycie dysku większe niż 90%"
else
echo "Uzycie dysku w normie"
fi 
[quote="Kurs basha]-lt mniejsze niż
-gt większe niż
-ge większe lub równe
-le mniejsze lub równe[/quote]
winnetou

Post autor: winnetou »

Dziękuje...
ksysinek
Beginner
Posty: 155
Rejestracja: 14 czerwca 2007, 00:33
Lokalizacja: *Miasto know-how

Post autor: ksysinek »

Skrypt w wykonaniu sigo sprawuje się tak jakbym sobie tego życzył. Dziękuję, bardzo mi pomogłeś.
ODPOWIEDZ