Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: poprawienie działania skryptu  (Przeczytany 2275 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.