Global environment variable is disappearing after logout

Hello,

I’ve created a simple script which is storing a value inside a global environment variable. It should be part of a bigger script but for simplification i reduced it to the essential.

> /system script print 
Flags: I - invalid 
 0   name="testscript" owner="admin" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon dont-require-permissions=no 
     last-started=jan/01/2020 22:01:58 run-count=1 source=
       :global oldprefix;
       :local curprefix;
       
       :set curprefix [/ipv6 pool get telekom-pd prefix]
       :set oldprefix $curprefix

When I run the script, I can see that the variable is set properly.

> /system script run 0
> /system script environment print 
 # NAME               VALUE                                                                                                                                   
 0 oldprefix          2003:de:ffff:ff00::/56

When I log back in after some time, the variable does not appear anymore, neither on console nor in the webinterface. The table is empty now. When I stay logged in, the variable doesn’t seem to disappear. But sometimes I see that the variable still exists after logging out and logging back in.

> /system script environment print 
 # NAME               VALUE

Aren’t the global variables persistent? If not, what is the best practice to store values for later usage in a periodic run script

Hi @mlu1,

Were you able to solve this problem? I have a relative who is going through the same problem.

Someone has been the same? any advice?

Thanks & BR.

I have the same issue with dhcpv6 client script. I set the old prefix to a global variable, but the variable and run count are disappearing after some times.

Hi Folks, anybody having a similar issue. I’m also creating a global variable from the DHCP script. It also disappears after a period, sometimes minutes, sometimes several hours.
I created a similar variable with a normal script and this variable too disappears and more interestingly the run count on the script also clears to 0. Almost as if a rollback occurs.
Would love to know what is causing this.

Anyone found a solution? I have a similar problem here: http://forum.mikrotik.com/t/send-public-ip-to-telegram/156953/1

No idea why they’d disappear. Maybe the dhcp process restarts and it loses them, really dunno…

One idea is create them in schedule script that runs at startup, so the dhcp script never creates a global.

e.g. in scheduler

:global oldprefix
:set oldprefix 0.0.0.0/0
:global newprefix
:set newprefix 0.0.0.0/0

I avoid assigning a global on the same line, and always set them – shouldn’t be necessary but seems safer.

I remembered this from the Wiki / manual:
GlobalWarning.JPG

There is a solution
http://forum.mikrotik.com/t/send-public-ip-to-telegram/156953/13