Sziasztok!
Az alábbi changeip DDNS szkriptet használtam eddig mikrotik alatt cím frissítésre, viszont a mostani RouterOS verzió alatt valamiért nem működik.
A Logba azt látom hogy paraméter hiánya van, viszont nem találok a neten leírást hogy hogyan tudnám debugolni hogy melyik paramétert hiányolja, ezzel kapcsolatban kérnék segítséget.
EDIT: ha kiprintelem parancssorban akkor azt írja hogy Flags: I - invalid
EDIT2: a /system script edit changeip value-name=source parancsra nem hoz piros sort..
Ez lenne a szkript:
:local ddnsuser "felhasznalo"
:local ddnspass "jelszo"
:local ddnshost "dnshostneve"
:local ddnsinterface "pppoe-out1"
:global ddnslastip
:global ddnsip [ /ip address get [find interface=$ddnsinterface disabled=no] address ]
:if ([ :typeof $ddnslastip ] = nil ) do={ :global ddnslastip 0.0.0.0/0 }
:if ([ :typeof $ddnsip ] = nil ) do={
:log info ("DDNS: No ip address present on " . $ddnsinterface . ", please check.") } else={
:if ($ddnsip != $ddnslastip) do={
:log info "DDNS: Sending UPDATE!"
:log info [ /tool dns-update name=$ddnshost address=[:pick $ddnsip 0 [:find $ddnsip "/"] ] key-name=$ddnsuser key=$ddnspass ]
:global ddnslastip $ddnsip }
}
- 765 megtekintés
Hozzászólások
Jól megbonyolítod az életedet. /ip/cloud/print ... van saját DDNS-e. Ha nem tetszik a mynetname.net-es domain, akkor egy névszerverben jegyzett szép domain neved alá bejegyzel egy CNAME-t és máris tetszőleges saját domain néven éred el.
Megjegyzem, érdemes megszokni hogy a RouterOS 7.1 szóközös elválasztás helyett / jellel egybeírja a teljes parancsot, bár még meghagyták a szóközös 6.xx-nél megszokott írásformát. Nem kizárható, hogy az egyik ilyennél keveredsz valami argumentummal.
Egyébként ha a sorok után teszel :log info <akármi>-t, akkor látod a LOG-ban hogy meddig töltötte fel helyes értékekkel a változókat. Így már tudod, hogy melyik sort értelmezte hibásan. Na így tudnád debugolni.
- A hozzászóláshoz be kell jelentkezni
Bár én is használom a mikrotik cloud-ot, azért tegyük hozzá, hogy ezzel fel is vállalod az ő általuk üzemeltetett ddns service rendelkezésre állását, ha az leáll, akkor hiába van cname-ed, nem fogod elérni a szervered. A saját script-es megoldással ezt meg tudod kerülni és akár több ddns service-ben is be tudod regisztrálni.
Tehát nem biztos, hogy felesleges bonyolitás a saját script.
- A hozzászóláshoz be kell jelentkezni
Szerencsére 10 év alatt nem vettem észre, hogy megpusztult volna, de ez nem jelenti azt hogy ne tudna megpusztulni.
Ha viszont szigorúbb paraméterű rendelkezésre állás kell, akkor eleve nem bohóckodunk dinamikus IP-s végponttal.
- A hozzászóláshoz be kell jelentkezni
Legutóbb amikor megrohadt akkor az elég kellemetlenséget okozott nekem, szóval inkább belőttem ezt mindenhova :)
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Ezt holnap megpróbálom köszi!
- A hozzászóláshoz be kell jelentkezni
A log info: <Hello>-zással kiderítettem hogy a szkript utolsó előtti sorában hiányolja a paramétert.
Ezen fórum linken írták hogy ki/belépési pontot hiányolhat, majd megpróbálok rájönni hogy hol keveredik bele a zárójelekbe.
- A hozzászóláshoz be kell jelentkezni
Nem jöttem rá hogy mi a baja, szóval visszaraktam a régi routerOS-t..
- A hozzászóláshoz be kell jelentkezni
Álljon itt magamnak az infó, hogy végül vettem egy namecheap-es domaint, és a következő szkript működik a v7.x-es routeros-el:
:global ddnshostname "aldomain"
:global ddnsdomain "domain"
:global ddnspass "ddnsgeneraltjelszo"
:log info ("DDNS: Updating")
:local str "https://dynamicdns.park-your-domain.com/update\3Fhost=$ddnshostname&domain=$ddnsdomain&password=$ddnspass"
/tool fetch url=($str) mode=https keep-result=no
ha hazaértem beélesítem, és jelentkezek.
szerk.: élesítve, műxik. - legyártom az aldomaineket és szórom szét az ügyfelekhez.
- A hozzászóláshoz be kell jelentkezni