Difference between revisions of "Script pentru restabilirea conexiunii ADSL"
From linux360
(nu stiu daca i-am gasit locul potrivit, insa scriptul cred ca e foarte util....) |
m (→Scriptul efectiv: Adapted to GeSHiCodeTag) |
||
(2 intermediate revisions by one other user not shown) | |||
Line 2: | Line 2: | ||
Scriptul de fata este util abonatilor Romtelecom care au conexiuni ADSL si folosesc modemurile Speedtouch 330 pe USB, modemuri care se desincronizeaza destul de des. Scriptul detecteaza, rezolva si tine evidenta problemele aparute. | Scriptul de fata este util abonatilor Romtelecom care au conexiuni ADSL si folosesc modemurile Speedtouch 330 pe USB, modemuri care se desincronizeaza destul de des. Scriptul detecteaza, rezolva si tine evidenta problemele aparute. | ||
− | + | Pentru ca scriptul sa functioneze corect trebuie sa efectuati cateva schimbari in fisierele de configurare a sistemului. In primul rand scriptul trebuie rulat in fiecare minut din crontab. Pentru aceasta trebuie sa adaugati in fisierul <tt>/etc/crontab</tt> linia de mai jos: | |
* * * * * root /calea/catre/check_host.sh | * * * * * root /calea/catre/check_host.sh | ||
− | Inainte de folosi acest script, va rog schimbati variabilele in functie de nevoile personale. Cea mai importanta variabila este <tt>CONEXIUNE</tt>. Variabila indica numele fisierului ce contine informatiile despre conexiune ADSL (nume utilizator, parola, etc...). Acest fisier se afla deobicei in directorul <tt>/etc/ppp/ | + | In cazul in care sistemul este restartat in timp ce ruleaza scriptul de restabilire a conexiunii ADSL fisierele lock folosite de acest script raman in directorul /tmp, ceea ce impiedica functionarea corecta a scriptului dupa restart. Pentru a evita aceasta situatie, dupa fiecare restart a sistemului trebuie sa stergeti aceste fisiere, in cazul in care exista. Este suficient sa adaugati urmatoarea linie intr-un fisier care va fi executat la bootare, de ex. <tt>/etc/rc.d/rc.local</tt> sau <tt>/etc/conf.d/local.start</tt> pe sistemele gentoo. |
+ | rm -f /tmp/chech_host* | ||
+ | |||
+ | Pentru a evita situatiile in care fisierele lock raman in directorul /tmp deorece sistemul a fost restartat in timp ce rula scriptul de restabilire a conexiunii | ||
+ | |||
+ | Exista o situatie in care pot aparea probleme, si anume atunci cand sistemul este resetat in timp ce scriptul ruleaza. Apoi trebuie sa va asigurati ca nu apar probleme in urma unei rebootari a sistemului din cauza fisierelor lock ramase in /tmp. Pentru a evita aceasta situatie la fiecare reboot trebuie sa va asigurati ca aceste fisiere nu exista in directorul /tmp. | ||
+ | |||
+ | Inainte de folosi acest script, va rog schimbati variabilele in functie de nevoile personale. Cea mai importanta variabila este <tt>CONEXIUNE</tt>. Variabila indica numele fisierului ce contine informatiile despre conexiune ADSL (nume utilizator, parola, etc...). Acest fisier se afla deobicei in directorul <tt>/etc/ppp/peers</tt> | ||
Un log generat de aplicatie arata cam asa: | Un log generat de aplicatie arata cam asa: | ||
Line 20: | Line 27: | ||
==Scriptul efectiv== | ==Scriptul efectiv== | ||
− | <code> | + | <code bash>#!/bin/sh |
− | #!/bin/sh | ||
# check_host.sh | # check_host.sh | ||
Line 56: | Line 62: | ||
else | else | ||
echo "END >" `date`>>$LOG_FILE | echo "END >" `date`>>$LOG_FILE | ||
− | |||
fi | fi | ||
+ | rm -f $TAG_FILE | ||
else | else | ||
if [ ! -f $TAG_FILE ]; then | if [ ! -f $TAG_FILE ]; then | ||
Line 66: | Line 72: | ||
rm -f $LOCK_FILE | rm -f $LOCK_FILE | ||
− | fi | + | fi</code> |
− | |||
− | </code> | ||
[[Category:HowTo]] | [[Category:HowTo]] | ||
[[Category:Networking]] | [[Category:Networking]] |
Latest revision as of 12:07, 12 January 2007
Observatii
Scriptul de fata este util abonatilor Romtelecom care au conexiuni ADSL si folosesc modemurile Speedtouch 330 pe USB, modemuri care se desincronizeaza destul de des. Scriptul detecteaza, rezolva si tine evidenta problemele aparute.
Pentru ca scriptul sa functioneze corect trebuie sa efectuati cateva schimbari in fisierele de configurare a sistemului. In primul rand scriptul trebuie rulat in fiecare minut din crontab. Pentru aceasta trebuie sa adaugati in fisierul /etc/crontab linia de mai jos:
* * * * * root /calea/catre/check_host.sh
In cazul in care sistemul este restartat in timp ce ruleaza scriptul de restabilire a conexiunii ADSL fisierele lock folosite de acest script raman in directorul /tmp, ceea ce impiedica functionarea corecta a scriptului dupa restart. Pentru a evita aceasta situatie, dupa fiecare restart a sistemului trebuie sa stergeti aceste fisiere, in cazul in care exista. Este suficient sa adaugati urmatoarea linie intr-un fisier care va fi executat la bootare, de ex. /etc/rc.d/rc.local sau /etc/conf.d/local.start pe sistemele gentoo.
rm -f /tmp/chech_host*
Pentru a evita situatiile in care fisierele lock raman in directorul /tmp deorece sistemul a fost restartat in timp ce rula scriptul de restabilire a conexiunii
Exista o situatie in care pot aparea probleme, si anume atunci cand sistemul este resetat in timp ce scriptul ruleaza. Apoi trebuie sa va asigurati ca nu apar probleme in urma unei rebootari a sistemului din cauza fisierelor lock ramase in /tmp. Pentru a evita aceasta situatie la fiecare reboot trebuie sa va asigurati ca aceste fisiere nu exista in directorul /tmp.
Inainte de folosi acest script, va rog schimbati variabilele in functie de nevoile personale. Cea mai importanta variabila este CONEXIUNE. Variabila indica numele fisierului ce contine informatiile despre conexiune ADSL (nume utilizator, parola, etc...). Acest fisier se afla deobicei in directorul /etc/ppp/peers
Un log generat de aplicatie arata cam asa:
BEGINING > Sat Mar 11 21:49:01 GMT 2006
END > Sun Mar 12 10:34:44 GMT 2006
BEGINING > Mon Mar 13 08:07:11 GMT 2006
END > Mon Mar 13 08:13:12 GMT 2006
SINGLE > Fri Mar 17 16:17:49 GMT 2006
BEGINING > Sat Mar 18 07:23:55 GMT 2006
END > Sat Mar 18 07:24:44 GMT 2006
SINGLE > Wed Mar 22 01:39:09 GMT 2006
Scriptul efectiv
#!/bin/sh
- check_host.sh
- SETEAZA variabilele de mai jos
- fis. in care vor fi logate intreruperile
LOG_FILE=/var/log/check_host
- daca exista fis. $LOCK_FILE o alta instanta a scriptului inca ruleaza
LOCK_FILE=/tmp/check_host.sh.lock
- daca exista fis. $TAG_FILE inseamna ca si testul anterior a esuat sa
- stabileasca conexiunea
TAG_FILE=/tmp/chech_host.sh.tag
- hostul fol. pentru verificarea conexiunii; poate fi gateway-ul, de ex.
HOST=www.yahoo.com
- numele fis. care contine setarile pentru conexiunea ADSL
- acest fis. se afla deobicei in dir. /etc/ppp/peers/
CONEXIUNE=adsl_express
if ! ping -c 3 $HOST &>/dev/null && ! test -f $LOCK_FILE ; then
touch $LOCK_FILE
# aici incercam sa restabilim conexiunea killall -9 pppd sleep 35 pppd call $CONEXIUNE
ping -c 3 $HOST &>/dev/null TEST=$?
if [ $TEST -eq 0 ]; then if [ ! -f $TAG_FILE ]; then echo "SINGLE >" `date`>>$LOG_FILE else echo "END >" `date`>>$LOG_FILE fi rm -f $TAG_FILE else if [ ! -f $TAG_FILE ]; then echo "BEGINING >" `date`>>$LOG_FILE touch $TAG_FILE fi fi
rm -f $LOCK_FILE
fi