Fórum Root.cz
Hlavní témata => Sítě => Téma založeno: StM 15. 02. 2013, 18:06:32
-
Právě jsem napsal (spíš poskládal) pár skriptů, které umožní omezit přístup některých PC na internet. Měly by se spouštět z různých PC s různými parametry (předávám je pomocí globální proměnné - jinak to snad ani nejde). Jenomže! Když se skript rozměhne z jedné stanice např. s parametrem 1 a v průběhu jeho zpracování se skript spustí odjinud s parametrem 2, pak se i v tom prvním běhu změní hodnota parametru a udělá to "neplechu". Část prvního spuštění běží s parametrem 1 ale poté se parametr změní na 2 a s tím to doběhne (a to už nemusí být korektní). Druhé spuštění běží s tou hodnotou 2.
Jediné, na co jsem přišel je to, že můžu HNED na začátku hodnotu globální proměnné uložit do lokální a pak je to OK. Ale přesto mi to připadá nespolehlivé.
Spolehlivá varianta by byla napsat víc skriptů a nepředávat parametry, ale to bych se dostal tam, kam nechci. Jakákoli úprava skriptů by se musela dělat mnohokrát.
Prosím, poraďte. Hledám už několik týdnů... a zatím nic.
-
Tak tomuhle dotazu dávám cenu Nejzmatenější dotaz měsíce :)
-
Tak tomuhle dotazu dávám cenu Nejzmatenější dotaz měsíce :)
To neni dotaz, ale sdeleni. Ja tam tedy zadny otaznik nevidim.
-
Máte pravdu, v textu není otazník. V textu je popsán problém s nekorektním ukončením prvního běhu skriptu. Pokud tam otazník schází tak upřesňuji:
Jak napsat skript pro OS Mikrotik, aby bylo jej bylo možné spouštět z více PC s různými parametry a přitom se při spuštění s různými parametry navzájem neovlivňovaly?
Děkuji upozornění JardoviP a děkuji za věcnou odpověď Mirkovi Prýmkovi.
-
Mrkněte možná na RouterOS API - třeba ten problém obejdete jako já.
Dělal jsem totiž něco podobného a přes skripty se mi to moc nedařilo, přes API to pak šlo docela dobře.
API jsem povolil v ip/services, pomocí PHP třídy routeros_api (to jsem někde stahnul) jsem začal bez docela rychle komunikovat s routerem - příkazy typu /ip/route/list a /ip/firewall/address-list/add atd.
Problém jsem zaznamenal jen u nějaké starší verze RouterOS - tam zůstávala viset spojení na API a nezavírala se ...
tak hodně štěstí!
-
Děkuji za reakci. Pomocí API jsem to měl hotovo (použil jsem C#). PC posílalo příkazy Mikrotiku a ten je prováděl. Problém je v okamžiku, kdy potřebuji ty posílané příkazy upravit (program upgradovat). Pak musím obejít ta PC... Měl jsem pocit, že skripty budou jednodušší a budu je moci upravovat na jednom místě, PC bude předávat parametry a dávat pouze pokyn k jeho spouštění. Jenže to má taky svoje mouchy.
-
Z pohledu programatora-co takhle pri spusteni skriptu nastavit nejaky priznak, ktery by se kontroloval pred opetovnym spustenim s jinym parametrem. K dalsimu spusteni s jinym parametrem by tedy mohlo dojit az ve chvili, kdy je predesle spusteni uspesne ukonceno a nastaveny priznak (rikejme tomu pracovne zamek nad spustenym skriptem) je uveden do stavu "odnastaveni" (=krasne slovo).
-
Diky, i o tom jsem uvažoval. Pořád ta spolehlivost není úplně to pravé ořechové. Co do spolehlivosti se to asi dá srovnat s těmi lokálními proměnnými. Uvažoval jsem o nějakém běhu v oddělených paměťových prostorech, nebo o něčem takovém.