Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

MikroTik - Skrypt wykonywany z opóźnieniem, jak zrobić?

sebii20 03 Mar 2013 22:54 2502 18
  • #1 03 Mar 2013 22:54
    sebii20
    Poziom 14  

    Witam

    Potrzebuję, aby w MT skrypt uruchamiał mi się po jakimś czasie od włączenia, czy da się to jakoś zrobić? Potrzebuję takie rozwiązanie, ponieważ skrypt mam zależny od godzin, a zegar synchronizuję się po chwili od uruchomienia i jeśli skrypt wykonuje się od razu po uruchomieniu to źle działa!

    0 18
  • #2 04 Mar 2013 08:18
    mbo
    VIP Zasłużony dla elektroda

    Zwykle jest to cron, w mikrotiku zwie się to scheluder.

    0
  • #3 04 Mar 2013 10:09
    sebii20
    Poziom 14  

    ja o tym wiem, tylko jak zrobić żeby np 5 min po uruchomieniu? tam jest tylko opcja startup, czyli przy uruchomieniu, ale żeby było za jakiś czas po uruchomieniu?

    0
  • #4 04 Mar 2013 10:48
    mbo
    VIP Zasłużony dla elektroda

    Tak nie da rady wprost.

    Musiałbyś ustawić jako startup i napisać mały skrypt zaczynający się od wait 300.

    0
  • #5 04 Mar 2013 11:02
    sebii20
    Poziom 14  

    No ok, bo ja już mam skrypt który działa po uruchomieniu, ale chciałbym go opóźnić powiedzmy o 5 min, więc co mam dopisać przed tym skryptem?

    0
  • Pomocny post
    #6 04 Mar 2013 16:40
    piterus99
    Poziom 43  

    :delay 300 daj na początek.

    0
  • #7 04 Mar 2013 23:32
    sebii20
    Poziom 14  

    Dzięki wielkie, działa tak jak chciałem!
    Natomiast nie działa mi inna rzecz. mam skrypt:

    :delay 60
    :if ([sy clock get time]>="08:00:00" && [sy clock get time]<"23:00:00") do={
    /queue simple set 0 disabled=no;
    /queue simple set 9 disabled=yes
    }
    else={
    /queue simple set 0 disabled=yes;
    /queue simple set 9 disabled=no
    }

    I pierwsza część tego skryptu działa mi bez problemu, natomiast gdy dopiszę "else"
    przestaje działać, czemu? co źle napisałem?

    0
  • Pomocny post
    #8 05 Mar 2013 00:13
    piterus99
    Poziom 43  

    Umieść nawias zamykający w jednej linii z else.

    Code:
    } else={ 

    0
  • #9 05 Mar 2013 10:42
    sebii20
    Poziom 14  

    Dzięki wielkie, rzeczywiście o to chodziło.

    Jeszcze mam jedno pytanie, ale sprawa jest chyba bardziej skomplikowana. Dopiero zaczyna swe doświadczenia z MT, nie umiem jeszcze zawile i stąd moje pytanie, do jednego z portów LAN podłączony mam serwer plików i mam jednego klienta który korzysta z mojego serwera z pomocą SAMBA (sieci domowej). Z racji tego że się na Mietku nie znam mam zrobione proste kolejki w SQ a cały MikroTik jest w bridge, i teraz moje pytanie, czy da się protokół SMB wykluczyć w jakiś sposób z SQ, aby nie ciął pasma przy korzystaniu z serwera?

    0
  • #10 05 Mar 2013 10:57
    piterus99
    Poziom 43  

    Najszybciej dodaj pustą kolejkę (tzn bez target-address), natomiast uzupełnij na drugiej zakładce dst-address adresem IP serwera.

    Jeśli natomiast chcesz ciąć tylko i wyłącznie protokół SMB, musisz zamarkować pakiety w IP->Firewall->Mangle dla tej usługi (porty 135-142) i dla danego IP docelowego osobno i źródła osobno i potem tworzysz kolejkę tak jak w punkcie pierwszym, tylko zamiast dst-address wybierasz odpowiedni packet-mark.

    W obu przypadkach ta kolejka musi być przesunięta przed kolejkę ograniczającą prędkość klienta (musisz posortować po kolumnie # i zwyczajnie przeciągnąć).

    0
  • #11 05 Mar 2013 11:03
    sebii20
    Poziom 14  

    A w interfejsie co mam podać, all czy tam gdzie serwer podpięty?

    0
  • #12 05 Mar 2013 11:42
    piterus99
    Poziom 43  

    Jedna i druga opcja powinna zadziałać, ale dla pewności możesz spróbować z konkretnym interfejsem.

    0
  • #13 05 Mar 2013 11:49
    sebii20
    Poziom 14  

    Dzięki działa tak jak pisałeś, tylko nie wiem jak mam to zrobić w moim przypadku. Mam dwie główne kolejki na dzień i na noc ustawione interfejs all (ponieważ klientów mam na wlan i eth3) i dopiero każdemu klientowi osobno przypisany już docelowy interfejs. i teraz mam postawić jeszcze jedną główną kolejkę z dst. adres serwer i sparować do niej dzień i noc? tylko jak tak robię i też ustawiam interfejs all to przestaje to wcale działać.
    MikroTik - Skrypt wykonywany z opóźnieniem, jak zrobić?

    0
  • #14 05 Mar 2013 12:37
    piterus99
    Poziom 43  

    Przesuń tą kolejkę od serwera jeszcze nad dzień, na pozycję 0 - kolejka wystarczy Ci jedna.
    Tak zaawansowane podziały robi się lepiej na QT niż na SQ.

    0
  • #15 05 Mar 2013 12:56
    sebii20
    Poziom 14  

    Tak wiem, ale tak jest chyba prościej jednak, a tak jak pisałem wcześniej nie znam się na MT :( i w ogóle nie mam pojęcia ja to zrobić w QT.

    Robię kolejkę "Serwer" dst. adres ... parent none interfejs all ustawiam na pozycję 0 i to nie działa.

    0
  • #16 05 Mar 2013 13:16
    piterus99
    Poziom 43  

    Mi działa, ale możliwe dlatego, że ja nie mam drzewka w SQ.
    Spróbuj zatem wepchnąć pod dzień i noc osobno, ale też żeby były na pierwszych miejscach. Więcej żadnych rozwiązań nie wymyślę, tak jak wspomniałem - u mnie na cięciu dla każdego hosta do określonej prędkości bez drzewka umieszczenie kolejki nad nimi wszystkimi z dst-address powoduje, że pakiety do określonego hosta nie trafiają już do innych kolejek, w związku z czym mogę "faworyzować" ruch do lokalnego serwera.

    0
  • #17 06 Mar 2013 00:19
    sebii20
    Poziom 14  

    Jednak działa w ten sposób tylko muszę ustawić limity jakieś np. 100M, jak dam unlimited to przestaje działaś, dla mnie to strasznie dziwne, czemu tak się dzieję?

    0
  • #18 06 Mar 2013 10:02
    piterus99
    Poziom 43  

    Przy unlimited kolejka zachowuje się jakby była wyłączona, różni się od "Disabled" tym, że możesz mieć kolejkę w jedną stronę wyłączoną.

    0
  • #19 06 Mar 2013 11:05
    sebii20
    Poziom 14  

    Ale ja nawet jak wyłączę jedną stronę to ta strona przestaje działać

    0