Portál AbcLinuxu, 29. října 2025 12:12
#!/bin/bash
cesta="/var/www/html/testlink"; #kam se maji vysledky ukladat
#vyber z ARPu vsechny ip co jdou pres ETH0, zacinaji na 192.168. a neobsahuji 192.168.0.
seznam=`/sbin/arp -i eth0 | grep -v "incomplete" | grep "192.168." | grep -v "192.168.0." | awk '{print $1}'`;
for soubor in `ls $cesta`; do #projdem vsechna jmena z adresare a vymazeme offline klienty
pocet=0; #vynuluj pocitadlo
for ip in $seznam; do #vyber jednu ip
if [ $soubor == "mon-$ip" ]; then
pocet=1; #nastav pocitadlo na 1, pokud je ip patrici souboru online
break #a zrus cyklus
fi
done
if [ $pocet == 0 ]; then #jestli je pocitadlo nulove
rm -f $cesta/$soubor; #k souboru neni online ip adresa, tak jej smaz
fi
done
for ip in $seznam; do
ping $ip -c1 -s56 -i.5 > /dev/null; #startovaci ping
ping $ip -c10 -s56 -i.5 | grep -A1 "packet loss" > $cesta/tmp-$ip; #merici ping
mv -f $cesta/tmp-$ip $cesta/mon-$ip #z docasneho souboru preved na zobrazitelny
done
vystup do souboru to dela takovyhle:
jestli nekdo mate tu moznost, prosim, zmoderujte to... diky
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.