Tak wygląda plik:
Kod: Zaznacz cały
#!/bin/bash
czas_start=`date +"%H-%M"`
plik=/var/www/testnet/testy/main_$czas_start.log
plik2=/var/www/testnet/testy/tabelka.html
date > $plik
#--------------petla bridge z podsiecia 52
tablica=(26 48 49 73 77 101 )
for ((a=0;a<6;a++)) ; do
extping="192.168.52.${tablica[$a]}"
teststracone=$(/bin/ping -c 3 -w 3 $extping|grep "100% packet loss")
testrech=$(/bin/ping -c 3 -w 3 $extping|grep Network)
if [ "$teststracone" = "" ] ; then
if [ "$testrech" = "" ] ; then
echo "1:${tablica[$a]}" >> $plik
else
echo "0:${tablica[$a]}" >> $plik
fi
else
echo "0:${tablica[$a]}" >> $plik
fi
done
#done
#plik html tabelka
##############################
echo "<!DOCTYPE HTML PUBLIC "-//W3C//DTD// HTML 4.01 Transitional//EN">" > $plik2
echo "<html><head>" >> $plik2
echo "<meta http-equiv=content-type content=text/html; CHARSET=iso-8859-2>" >> $plik2
echo "</head>" >> $plik2
echo "<body>" >> $plik2
date >> $plik2
echo "</body></html>" >> $plik2
Mianowicie:
Jeden plik wykonuje pingi, tworzy log z datą, kolejne polecenie tworzy plik, który ma odczytywać dane.
Po wykonaniu mamy w pliku main_czasstart.log:
1:26
1:48
1:49
1:73
0:77
0:101
192.168.52.77 i 101 nie działają jak widać.
I jak teraz po wklepaniu daty do pliku2, ma zczytywać dane? mam na myśli tabelkę:
--AP--00:00|00:30|01:00|01:30|02:00|... (tak dalej co pół godziny)
26___|_____|_____|_____|______|______|
48___|_____|_____|_____|______|______|
49___|_____|_____|_____|______|______|
73___|_____|_____|_____|______|______|
77___|_____|_____|_____|______|______|
101__|_____|_____|_____|______|______|
Chciałbym aby w pierwszej kolumnie były dane odczytane z pliku main_00-00.log,
w drugiej kolumnie z pliku main_00-30.log itp.
Dane zamieniać na kolor komórki zielony lub czerwony. Czy mam to jakąś pętlą zrobić czy jak? Wiem jak wrzucić tabelkę do htmla, jak sprawić by była kolorowa, lecz nie wiem jak wczytać dane do niej.
[ Dodano: 2009-01-26, 07:57 ]
Czy jest ktoś w stanie pomóc? Czy coś bardziej wyjaśnić?
[ Dodano: 2009-02-04, 08:13 ]
Nie wiem czy komuś się przyda:
Najpierw wczytuje dane (0,1) z pliku, który zawiera:
Datę
1:12
0:30
1:45
Obcinam datę więc wczytanie:
Kod: Zaznacz cały
tail -n +2 /var/.../testy/main.log | cut -d\: -f1 |\
Następnie sprawdzam czy 1 czy 0:
Kod: Zaznacz cały
while read x; do
case "$x" in
1) echo "<tr><td bg color="green">1</td></tr> >> $plik;;
0) echo "<tr><td bg color="red">1</td></tr> >> $plik;;
*);;
esac
done