Nowe posty

Autor Wątek: poprawienie działania skryptu  (Przeczytany 2296 razy)

lwe

  • Gość
poprawienie działania skryptu
« dnia: 2010-01-18, 20:37:38 »
Witam wszystkich mam problem z działaniem takiego otóz skryptu ,który umożliwia wysłanie powiadomienia gdy zajete miejsce na dysku przekroczy 95 % powierzchni dysku, co w nim mam popawić , gdy wpisuje go do terminala to wyskakuje mi informacja ze polecenie -gt nie jest znane.prosze o pomoc:
#!/bin/ksh
rm /tmp/dfk.txt
echo "df -k output for `date` `uname -a`" > /tmp/dfk.txt
i=1
while [ $i -le `df -k | grep -v proc | grep -v Capacity | wc -l` ] ;do
if [ `df -k | grep -v proc | grep -v Capacity | head -n $i | tail -1 | awk '{print $5}' | sed -e 's/%//'` -gt 90 ] ; then
df -k | grep -v proc | grep -v Capacity | head -n $i | tail -1 >> /tmp/dfk.txt
fi
((i=i+1))
done
if [ `cat /tmp/dfk.txt | wc -l` -gt 1 ] ; then
cat /tmp/dfk.txt | mail user@host.com
fi

arctgx

  • Gość
poprawienie działania skryptu
« Odpowiedź #1 dnia: 2010-01-19, 01:04:46 »
Mógłbyś zadbać zarówno o opis (interpunkcja, wielkie litery), jak i kod, by człowiek miał ochotę to czytać, a nie tylko interpretator poleceń. Zobacz też http://forum.linux.pl/help.php#bbcode

Zamiast ((i=i+1)) wystarczy ((i++)).

Krótko powiem tak: zamiast łańcuchów głów, ogonów, grepa, awka i seda, warto czasem nauczyć się samego awka:
i=2 ; df | awk 'NR=='$i' {sub(/%/,"",$5); print $5}'
i=9; df | awk '$1 ~ /^\\/dev\\/sdb'$i'/ {sub(/%/,"",$5); print $5}'
i tak dalej...

P.S. Porównanie liczb tez możesz zrobić w awku.