DD-WRT a startup script

Routery, AP, switche, huby, ethernet

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Epe 12. 5. 2016 08:27

Zdravím,
může mi někdo říct, zda je možné na DD-WRT nahrát "startup script", který poběží v nekonečné smyčce? Nechtěl bych router usmrtit tím, že by se po spuštění tento skript spustil a systém by čekal na jeho dokončení :)
Díky za info
Epe
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod hunter21 12. 5. 2016 09:00

Akakolvek smycka je potencialnym zabijakom. Prave preto sa uz pred desiatkami rokov preslo na programovanie pomocou udalosti. Skript je lepsie spustat udalostou od casovaca. Zrejme je lepsie napisat co presne potrebujes spravit, pretoze to moze byt uz hotove a staci len googlit.
hunter21
Pokročilý

Odeslat příspěvekod Epe 12. 5. 2016 09:18

ano souhlasim. idealni si udelat hodinovy cron a spouste skript. Bohuzel na TP-LINK 741ND nemuzu ulozit libovolny skript, protoze ma malou flash pamet. Takze jedina moznost je vyuzit menu "commands" a tam ulozit nejaky "startup script".

Jde mi o to, ze jednou za cas se stane, ze prestane fungovat wifi (kabel funguje). Takze jsem nasel na foru DDWRT skript, ktery by si pingal wifi klienta, ktereho mam porad zapnuteho. V pripade, ze by nejaky cas nedostaval odpoved, router by se restartoval.
Epe
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod hunter21 12. 5. 2016 09:30

Pre inspiraciu mozem uviest skript v ktorom som pouzil smycku, ktora sa ukonci po
stanovenom case bez ohladu na to ako dopadne vysledok prikazu vo vnutri smycky.
Zistuje to, ci je bezdratova linka pripojena, alebo odpojena.

Kód: Vybrat vše
# Wait for Association and exit with status
RETVAL=0; ASSOC_TIMEOUT=0; ENOSUP=-1
CMD_GET_CONN="connStatus"; IFACE="wlan0"

# Test for support GET Connection_Status Command
ASSOC=`$CMD_IWP $IFACE $CMD_GET_CONN 2>/dev/null` || RETVAL=$ENOSUP
if [ "$RETVAL" = "0" ]; then
  # Is Association OK ?
  IS_ASSOCIATION=`echo $ASSOC | grep "Connected" | wc -l`
  if [ "$IS_ASSOCIATION" = 0 ]; then
    echo "Waiting for Association..."
    while [ "$IS_ASSOCIATION" != "1" ] && [ "$ASSOC_TIMEOUT" -le "60" ]
      do
         sleep 1
         IS_ASSOCIATION=`$CMD_IWP $IFACE $CMD_GET_CONN | grep "Connected" | wc -l`
         let ASSOC_TIMEOUT++;
    done

    if [ "$ASSOC_TIMEOUT" = "0" ] || [ "$IS_ASSOCIATION" = "1" ]; then
      echo "==> OK"
    else
      RETVAL=1
      echo "==> Timeout"
    fi

  fi
fi

exit $RETVAL

hunter21
Pokročilý

Odeslat příspěvekod soban 12. 5. 2016 14:13

Vždyť DD-WRT má cron v základu (pochybuji že u tebe nebude) tak se vykašli na nějaký ping a prostě router každý den v 2:00 h resetni přes cron.

PS. Nemusíš provádět komplet reset stačí zhodit a zase zapnout wifi.

PS.2 Ten jeden řádek do cronu se do flash určitě vleze.
/----------------------------------------\
| Petr Šobáň |
| Olomouc |
\----------------------------------------/
soban
Pokročilý

Odeslat příspěvekod hunter21 12. 5. 2016 14:35

Mam tiez 741ND a zaujimalo by ma ci mas vysledovanu pricinu mrznutia wifi. Ked ti zamrzne wifi vysiela to nadalej SSID?
Tiez mi to obcas zamrzne.
hunter21
Pokročilý

Odeslat příspěvekod Epe 12. 5. 2016 19:01

soban: praveze jsem to chtel navazat na to jestli funguje ping. Kdyz vytuhne wifi v 2:01 tak je to na nic a musim to zase rucne restartovat. Ale asi neni jina moznost nez nejaky cron v noci a
Kód: Vybrat vše
ifconfig ath0 down; sleep 1; ifconfig ath0 up; startservice lan ath0; startservice lan ath0


hunter: cim to je netusim. vetsinou to jede mesic-dva bez problemu. SSID nevysila. Je to uplne tuhy.
Epe
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod hunter21 12. 5. 2016 19:26

Ja mam zatial len pracovnu hypotezu preco to mrzne a ta sa zaklada na praci pri odstranovani chyby v ovladaci pre USB wifi, ktory obcas a nahodne mršil data pri prenose. Tyka sa to hw filtra na karte, ktory by nemal posielat do ovladaca ramce s chybami. Moze sa stat, ze chybny ramec nastavi ovladac do nepodporovaneho rezimu ak je chyba napriklad v riadiacich, alebo kontrolnych datach.

Problem resetu odvodeneho od pingu je ten, ze ping sa nemusi dostat na druhu stranu z dovodu velkeho zarusenia, alebo v tom case moze klient vykonavat funkciu prieskumu pasma. V takom pripade nieje potrebne router restartovat nakolko moze fungovat normalne. Zalezi na tom aku situaciu nefungovania riesis.
Take zamrznutie ako nastava u mna by bolo potrebne zrejme riesit zhodenim a znova nahodenim interface. Pri strate spojenia by bolo zrejme lepsie sledovat log v ktorom sa objavuje prislusna hlaska. Router vykopne prislusnu MAC z RAM ak nieje aktivna dlhsie ako 5min. Ten interval sa da zejme niekde nastavit, pretoze Mikrotik to ma nastavene na 60min. Aby router nevykopol MAC (a teda neukoncil spojenie) musi od klienta dostavat pravidelne info o aktivnom stave. To sa robi zvycajne v inrvaloch ~10sec.
hunter21
Pokročilý

Odeslat příspěvekod rr-zz 12. 5. 2016 19:45

hoši hoši.. než byste si připlatili pětikilo za výkonnější a vychytanej Mikrotik, kterej není třeba rebootovat roky, tak tady přes DD-wrt křísíte takový střepy :)
rr-zz
Junior

Odeslat příspěvekod hunter21 12. 5. 2016 19:51

Tak to vies no, niekto si rad hraje. A ten kto si hraje, nezlobi, vsak to poznas. Okrem toho sa clovek aspon nieco nauci.
hunter21
Pokročilý

Odeslat příspěvekod rr-zz 12. 5. 2016 21:07

jasný :) já mám několik Tplinků 841 s openWRT i DD-wrt, u něj jede wifi super a není třeba s tím cokoliv dělat celej rok. Z levnýho routeru to udělá luxusní zařízení ;-)
rr-zz
Junior


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků