Modem reboot script-uri, script-uri, on-line

Nu cu mult timp în urmă mi-am propus să-mi fac puțin munca mai ușoară. Lucrul este că eu sunt administratorul uneia dintre rețelele de domiciliu din Minsk. Lucrarea este interesantă, creativă, dar există destulă rutină. Sunt servere, așa că vreau automatism.







Când modemurile funcționează mult timp, încep să încetinească sau să piardă contactul. Cine are un modem ADSL la domiciliu sau care a apelat vreodată la suportul tehnic al unui furnizor de servicii de Internet își amintește că prima soluție este de a reporni modemul. Da, nu se întâmplă atât de des, dar chiar așa. Și dacă nu sunteți acasă, atunci ce să faceți? Da, și de ce nu ca o reasigurare, astfel încât să puteți reporni automat? Sa hotărât. După ce am scos pe Internet nu am găsit nimic util în Linux. Au fost încercări de a scrie câteva scenarii pentru Windu. Dar nu mi-a fost de acord.

Un pic supărat, m-am hotărât să caut ajutor de la frații Linuksoid. Desigur, nimeni nu mi-a scris scripturi, dar mi-au împins să rezolv problema prin aruncarea unui link:

După ce am săpat în această direcție, mi-am dat seama că acest limbaj de script vă va ajuta să rezolv problema. În caz contrar, rezolvați-l universal, scrieți scripturi pentru fiecare model al modemului cu modificări minime. Așa cum înțeleg limbajul scriptului Expect vă permite să analizați rezultatul și după anumite fraze introduceți anumite valori. Ea a devenit foarte important, deoarece în modem Zyxel execută o linie specială de comandă shell și de a avea în continuare pentru a obține, acest lucru nu este D-Link în cazul în care totul este simplu: introduceți o comandă și pentru a obține rezultatul scontat.

Înainte de a rula aceste scripturi, trebuie să instalați pachetul corespunzător, pentru ca Linux să înțeleagă acest limbaj de script. Din moment ce sunt fan de Debian Linux, comanda de instalare arată astfel:


Dezvoltarea algoritmului pentru repornirea modemului D-Link DSL-2540U

Ce facem pentru a reporni modemul prin telnet? Introducem comenzile corespunzătoare în terminal și modemul le execută. Pentru a reseta modemul D-Link, folosim următoarele comenzi:

  1. Conectăm la modem cu comanda telnet a modemului ip
  2. Numele de utilizator (modemul poate solicita sau nu poate solicita.
  3. Introducem parola.
  4. Introduceți comanda de repornire și așteptați până când modemul repornește
  5. Părăsim consola, adesea doar închizând-o, deoarece se blochează după ce conexiunea este întreruptă din cauza unei repornări.






Script-ul de reboot al modemului D-Link DSL-2540U

Acum ne vom da seama în echipă. (pentru cei neinițiați)

#! / usr / bin / expect -f -să ajuți compilatorul, astfel încât să știe limba de scriere pe care o folosim.

Următorul pas este inițializarea variabilelor. Dar eu nu cred că merită să faci, pentru că am scrie un scenariu foarte mic, și merge fără a supraîncărca este de asemenea variabilă inutil (în acest caz, este inutil pentru că nu poartă cu ele orice operații logice, iar valorile atribuite variabilelor în procesul de script-ul utilizat numai 1 timp, deci nu are nici un rost în acest sens). După cum se spune, scurta este sora talentului.

Acum, să mergem la comenzile executate de script. Toată simplitatea și delicatețea se află în faptul că nu găsim nimic nou, folosim doar comenzile familiare.

Pentru simplitatea percepției, vreau să menționez asta

așteptare - O comandă care analizează ieșirea textului către terminal de către dispozitiv și caută cuvântul sau fraza corespunzătoare specificate după ghilimele "". Fraza introdusă corect - o garanție că scriptul va funcționa corect și nu intră în eroare.

se așteaptă «Autentificare:» - această comandă înseamnă că după slovaLogin: script-ul devine peste si este gata pentru a intra în următoarea comandă. Nu uita că Linux face distincția între cazul ortografiei superioară și inferioară, astfel încât toate textele pe care trebuie să caute un script trebuie să fie scris exact așa cum sunt afișate în terminal. Cu toate semnele și simbolurile.

trimite este comanda trimite. Introduce în șir valorile de care avem nevoie, în general vorbind, intră în comenzi în loc de noi, care sunt specificate în "". Nu uita că, dacă după introducerea echipei, avem nevoie să apăsați tasta Enter pentru a vyplolneniya, ghilimelele trebuie să introduceți următoarea combinație de caractere fără un spațiu după comanda sau dorit, de exemplu de conectare, \ r

trimiteți "admin \ r" - trimiteți numele de utilizator la modem. Trebuie să rețineți numele de utilizator pentru cel care este programat în modul dvs. Nu este dificil să aflați acest lucru din manualul modemului. Este la fel ca și pentru intrarea prin interfața WEB.

așteptați "Password:" - așteptați până când modemul solicită o parolă.

trimite "my_password \ r" - trimite modemului parola cu care este protejat. Nu uitați parola. Înlocuiți parola my_password cu parola. Nu uitați că imediat după ce parola trebuie scrisă, aceasta este \ r "Între parametru și comandă este inacceptabilă utilizarea unui blanc!

Acum transmitem comenzile necesare modemului și bucurăm rezultatul.

așteptați ">" - căutați linia de comandă. Vă atrag atenția, arată diferit în modemuri diferite. În citate, vă recomand să introduceți textul liniei, care se află la începutul liniei de comandă.

trimiteți "reboot \ r" - trimiteți comanda modemului pentru a reporni.

trimiteți "exit \ r" - trimiteți comanda modemului pentru a finaliza conexiunea. Finalizați sesiunea telnet.

așteptați eof - această comandă este folosită pentru a termina scriptul.

Acesta este de fapt întreg scenariul. Acum îl puteți încărca în siguranță pe server și îl puteți executa. Cum să îl lansați, decideți. Îl conduc pe coroană în fiecare noapte. Pentru a întrerupe conexiunea nu a intervenit. Am deja adormit în acest moment







Trimiteți-le prietenilor: