0

間隔ベースで実行するようにスケジュールするためにスクリプトをリストに追加しようとしていますが、スクリプトに配置すると機能せず、Mikrotik のターミナルでスクリプトを手動で実行すると完全に機能します。これらの両方のバージョンのスクリプトを次のように試しました。

\n /r/スクリプト バージョン:

{\r\
\n:global NSM2 [/ip neighbor find mac-address="68:72:51:34:AA:03"];/r/
\n:foreach i in=$NSM2 do={/r/
\n:global nsm2tx [/ip neighbor get $i address];/r/
\n}/r/
\n/ip firewall nat set 11 to-address=$nsm2tx/r/
\n:global NSM2 [/ip neighbor find mac-address="68:72:51:32:11:60"];/r/
\n:foreach i in=$NSM2 do={/r/
\n:global nsm2rx [/ip neighbor get $i address];/r/
\n}/r/
\n/ip firewall nat set 10 to-addresses=$nsm2rx/r/
\n}

通常版 :

:global NSM2 [/ip neighbor find mac-address="68:72:51:34:AA:03"];
:foreach i in=$NSM2 do={
:global nsm2tx [/ip neighbor get $i address];
}
/ip firewall nat set 11 to-address=$nsm2tx

:global NSM2 [/ip neighbor find mac-address="68:72:51:32:11:60"];
:foreach i in=$NSM2 do={
:global nsm2rx [/ip neighbor get $i address];
}
/ip firewall nat set 10 to-addresses=$nsm2rx

しかし、スクリプトに配置して実行ボタンをクリックしたり、スケジュールが実行されたりすると、これらのどれも機能しません..!

4

1 に答える 1

1

スクリプトの背後にある考え方は正しいですが、構文はそうではありませんでした。Mikrotik スクリプト言語は非常にうるさいので、レビューしました。動作するバージョンは次のとおりです。

:local nsm2tx [/ip neighbor get [find mac-address="68:72:51:34:AA:03"] address];
/ip firewall nat set 10 to-addresses="$nsm2tx"
于 2016-02-08T09:21:36.790 に答える