pothi.mikrotik-scripts/scripts/init.rsc
2025-06-02 06:47:02 +05:30

56 lines
1.3 KiB
Text

# Initialize the router with default values, run backup scripts and check for updates!
# Version: 2
# changelog
# version: 2
# - date: 2022-11-18
# - introduction of timeout to check internet
:global adminEmail "noreply@example.com"
:global cloudPass ""
:local isUP 0
:local timeout 5
/interface/detect-internet
set detect-interface-list=WAN
state
:do {
:delay 60s
:set $internetStatus ([:pick [print as-value] 0]->"state")
# :log info "Waiting for internet..."
:set isUP ($isUP+1)
:if ($isUP = $timeout) do={ :error "Internet timed out after $timeout minutes!" }
} while ($internetStatus != "internet")
# :log info "Connected to internet."
:log info "Init script started."
/system script
:local commonScripts {"cloud-backup"; "firmware-check"}
:local initScripts ("wifi-enable", $commonScripts)
:foreach scriptName in $initScripts do={
:do { run $scriptName } on-error={:log error "Error running $scriptName"}
:delay 30s
}
:local currentHour [:tonum [:pick [/system clock get time] 0 2]]
:if ($currentHour < 12) do={
:local backupScripts {"backup-cron"; "backup-scripts"}
:foreach scriptName in $backupScripts do={
:do { run $scriptName } on-error={:log error "Error running $scriptName"}
:delay 30s
}
} else={
:log info "Automated backups aren't taken after 12 noon."
}
:log info "Init script ended."