BSD a pevna linka
Dan Lukes
dan at sofia.fio.cz
Mon Aug 25 12:29:32 CEST 1997
Omlouvam se, meli jsme nejake problemy v praci a tak jsem to nejak
nezvladl.
Takze, toto jsou /etc/ppp/options z obou dvou koncu linky
----------------------------- -----------------------------
194.212.227.5:194.212.227.6 194.212.227.5:194.212.227.6
netmask 255.255.255.252 netmask 255.255.255.252
dns1 194.212.227.17
modem modem
crtscts crtsrts
bsdcomp 15 bsdcomp 15
persist persist
lcp-max-configure 18 lcp-max-configure 18
lcp-max-failure 18 lcp-max-failure 18
----------------------------- -----------------------------
Prvni tri radky jsou asi jasne. Pochopitelne, IP adresy musite dat vlastni,
nebo rezervovane. Dalsi dva se tykaji pripojeneho zarizeni -
- modem s hardwarovym rizenim toku. Pod tim je parametr tykajici se komprese
prenasenych dat. "persist" rika, ze po rozpadu spojeni se program nema
ukoncit, ale ma se pokusit znovunavazat spojeni. lcp-max-* parametry naopak
brani programu aby se o spojeni pokousel prilis dlouho. Muze se totiz stat,
ze program se vuci druhe strane dostane do stavu, ze ktereho se neni schopen
sam vzpamatovat a pak je lepsi kdyz se ukonci.
Samotne spousteni je zajisteno pomoci radky v /etc/ttys:
/dev/cuaa0 "/usr/sbin/pppd 115200" unknown on insecure
Umisteni do /etc/ttys ma tu vyhodu, ze pri ukonceni programu (z jakehokoliv
duvodu) je pppd okamzite restartovan systemem (init).
Zbyva se vyporadat se situaci, kdy neni spojeni, ale pppd z jakehokoliv
duvodu neukoncilo spoji cinnost. To u me zajistuje script spousteny cronem
kazde dve minuty. Script se spousti se dvema parametry - cislem portu (to
cislo na konci /dev/cuaa?, casto 0) a IP "protejsi stanice":
-----------------------------------------------------------------------
PIF=$1
PIP=$2
if ( ! ps -ax | grep -v -e "grep" | grep -e "pppd 115200 /dev/cuaa$PIF" >/dev/null); then
stty 115200 </dev/cuaa$PIF >/dev/null
/usr/sbin/pppd 115200 /dev/cuaa$PIF
else
OLDIF=2
if [ -f /var/run/if.ppp$PIF.down ]; then
OLDIF=1
fi
if [ -f /var/run/if.ppp$PIF.up ]; then
OLDIF=0
fi
IFDOWN=0
date >/tmp/if.ppp$PIF.stat
if (! ( /sbin/ping -c 1 $PIP >/dev/null 2>&1 || /sbin/ping -c 3 $PIP >/dev/null 2>&1 ) ); then
if (! /sbin/ping -c 12 $PIP >>/tmp/if.ppp$PIF.stat 2>/dev/null ) ; then
if [ -f /var/run/ppp$PIF.pid ]; then
/bin/kill $(cat /var/run/ppp$PIF.pid) >>/tmp/if.ppp$PIF.stat
/sbin/ping -c 2 127.0.0.1 >/dev/null 2>&1
if [ -f /var/run/ppp$PIF.pid ]; then
/bin/kill -9 $(cat /var/run/ppp$PIF.pid) >>/tmp/if.ppp$PIF.stat
rm /var/run/ppp$PIF.pid
fi
fi
IFDOWN=1
fi
fi
if [ "$OLDIF" != "$IFDOWN" ]; then
if [ "$IFDOWN" = 0 ]; then
mail -s "Interface ppp$PIF is up!" root </tmp/if.ppp$PIF.stat
logger -i -p daemon.err -t pppdstat "ppp$PIF: Interface is up!" >/dev/null
rm /var/run/if.ppp$PIF.down >/dev/null
date >/var/run/if.ppp$PIF.up
fi
if [ "$IFDOWN" = 1 ]; then
mail -s "Interface ppp$PIF is DOWN!" root </tmp/if.ppp$PIF.stat
logger -i -p daemon.err -t pppdstat "ppp$PIF: Interface is down!" >/dev/null
rm /var/run/if.ppp$PIF.up >/dev/null
date >/var/run/if.ppp$PIF.down
fi
rm /tmp/if.ppp$PIF.stat
fi
fi
----------------------------------------------------------------------------
Pokud budete chtit popis co dela ktera cast toho scriptu, i to mohu dodat.
S pozdravem
Dan
More information about the Users-l
mailing list