redmateo prosił mnie żebym napisał jak ja zrobiłem to u siebie, więc piszę. U mnie jest trochę inaczej niż u was. Od razu zaznaczam że autorem tego pomysłu jest
młody z serwisu
http://www.ask-mechtalnet.prv.pl
Zacznę od ATD
U mnie wygląda tak:
#!/bin/sh
#
# This is a rustic "at" daemon (a:\router\etc\atd)
#
# In this example at 09:00 atd executes 'control unblock' command
# and at 18:15 atd executes 'control block'
#
# Just change times and commands for your needs
# and start atd from rc_user with command 'fork atd'
G=0;
E=2
while :; do
sleep 60 2>/dev/null;
G=`expr $G + 1`
if [ $G = $E ]; then
G=0;
/mnt/router/rc/rc_status
fi
Dalej jest plik /mnt/router/rc/rc_status który dość łopatologiczną metodą (bałwan jestem ping) wykrywa obecność użytkowników w sieci:
#!/bin/sh
#
# Bring up/down network(s)
#. /etc/system.cfg
#. /etc/live.cfg
#. /etc/chat.pwd
#uzytkownik_nr_1
D=`/bin/date +%S`;
ping -s 1 -c 1 -t 1 -i 1 192.168.0.2;
E=`/bin/date +%S`
if [ $E -lt $D ]; then
E=`expr $E + 60`
fi
F=`expr $E - $D`
if [ $F -lt 5 ]; then
cp /mnt/router/www/status_p/02.txt /mnt/router/www/tmp/;
else
rm /mnt/router/www/tmp/02.txt;
fi
#uzytkownik_nr_2
D=`/bin/date +%S`;
ping -s 1 -c 1 -t 1 -i 1 192.168.0.3;
E=`/bin/date +%S`
if [ $E -lt $D ]; then
E=`expr $E + 60`
fi
F=`expr $E - $D`
if [ $F -lt 5 ]; then
cp /mnt/router/www/status_p/03.txt /mnt/router/www/tmp/;
else
rm /mnt/router/www/tmp/03.txt;
fi
#uzytkownik_nr_3
D=`/bin/date +%S`;
ping -s 1 -c 1 -t 1 -i 1 192.168.0.4;
E=`/bin/date +%S`
if [ $E -lt $D ]; then
E=`expr $E + 60`
fi
F=`expr $E - $D`
if [ $F -lt 5 ]; then
cp /mnt/router/www/status_p/04.txt /mnt/router/www/tmp/;
else
rm /mnt/router/www/tmp/04.txt;
fi
itd. aż do wyczekpania sprawdzanych numerów IP.
W katalogu /mnt/router/www/status_p/ muszą znajdować się wszystkie pliki tekstowe(u mnie od 01.txt do 12.txt bo tylu mam userów).
Teraz pozostaje tylko wyświetlanie tego na www czyli kawałek pliku index.php który znajduje się w katalogu głównym serwera www:
Użytkownik 192.168.0.2 <?
if(file_exists("tmp/02.txt"))
echo("on");
else
echo("off");
?><BR>
Użytkownik 192.168.0.3 <?
if(file_exists("tmp/03.txt"))
echo("on");
else
echo("off");
?><BR>
Użytkownik 192.168.0.4 <?
if(file_exists("tmp/03.txt"))
echo("on");
else
echo("off");
?><BR>
Mateo pytzał jeszcze jak zrobić podliczenie ilu jest userów w tej chwili. Ja zrobiłem to znów łopatologicznie:
<?
$a=0;
if(file_exists("tmp/02.txt"))
$b=$a+1;
else
$b=$a;
if(file_exists("tmp/03.txt"))
$c=$b+1;
else
$c=$b;
if(file_exists("tmp/04.txt"))
$d=$c+1;
else
$d=$c;
if(file_exists("tmp/05.txt"))
$e=$d+1;
else
$e=$d;
if(file_exists("tmp/06.txt"))
$f=$e+1;
else
$f=$e;
if(file_exists("tmp/07.txt"))
$g=$f+1;
else
$g=$f;
if(file_exists("tmp/08.txt"))
$h=$g+1;
else
$h=$g;
if(file_exists("tmp/09.txt"))
$i=$h+1;
else
$i=$h;
if(file_exists("tmp/10.txt"))
$j=$i+1;
else
$j=$i;
if(file_exists("tmp/11.txt"))
$z=$j+1;
else
$z=$j;
if(file_exists("tmp/12.txt"))
$h=$z+1;
else
$h=$z;
if($h==0){
echo "nie są uruchomione żadne komputery";
} else if($h==1){
echo "uruchomiony jest <b>1</b> komputer";
} else if($h==2){
echo "uruchomione są <b>2</b> komputery";
} else if($h==3){
echo "uruchomione są <b>3</b> komputery";
} else if($h==4){
echo "uruchomione są <b>4</b> komputery";
} else if($h==5){
echo "uruchomionych jest <b>5</b> komputerów";
} else if($h==6){
echo "uruchomionych jest <b>6</b> komputerów";
} else if($h==7){
echo "uruchomionych jest <b>7</b> komputerów";
} else if($h==8){
echo "uruchomionych jest <b>8</b> komputerów";
} else if($h==9){
echo "uruchomionych jest <b>9</b> komputerów";
} else if($h==10){
echo "uruchomionych jest <b>10</b> komputerów";
} else
echo "<b>=błąd=</b>";
?>
Pozostaje jeszcze tylko dopasowanie wyglądu tego wszystkiego do designu strony ale jeśli ktoś chce bałwan jestem z grafik to polecam żeby były to tylko dwa pliki (o nazwach np. on.jpg i off.jpg) bo to przyśpiesza ładowanie statusu. Ja mam tak u siebie. Zapraszam na
http://mlask.one.pl ja mam tylko dwie graficzki a efekt jest naprawdę fajny.
Pozdrawiam:
Mariusz Adam Górski