From 130b80e5d782d012c1146a00077f18da3c7d0120 Mon Sep 17 00:00:00 2001 From: Alexander Tebiev Date: Wed, 2 Apr 2025 10:42:48 +0200 Subject: [PATCH] fc --- v2.rsc | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 v2.rsc diff --git a/v2.rsc b/v2.rsc new file mode 100644 index 0000000..ff9d977 --- /dev/null +++ b/v2.rsc @@ -0,0 +1,96 @@ +# Script name: BackupAndUpdate +# +#----------SCRIPT INFORMATION--------------------------------------------------- +# +# Script: Mikrotik RouterOS automatic backup & update +# Version: 24.06.04 +# Created: 07/08/2018 +# Updated: 04/06/2024 +# Author: Alexander Tebiev +# Website: https://github.com/beeyev +# You can contact me by e-mail at tebiev@mail.com +# +# IMPORTANT! +# Minimum supported RouterOS version is v6.43.7 +# +#----------MODIFY THIS SECTION AS NEEDED---------------------------------------- +## Notification e-mail +## (Make sure you have configured Email settings in Tools -> Email) +:local emailAddress "zzt.tzz@gmail.com"; + +## Script mode, possible values: backup, osupdate, osnotify. +# backup - Only backup will be performed. (default value, if none provided) +# +# osupdate - The script will install a new RouterOS version if it is available. +# It will also create backups before and after update process (it does not matter what value `forceBackup` is set to) +# Email will be sent only if a new RouterOS version is available. +# Change parameter `forceBackup` if you need the script to create backups every time when it runs (even when no updates were found). +# +# osnotify - The script will send email notifications only (without backups) if a new RouterOS update is available. +# Change parameter `forceBackup` if you need the script to create backups every time when it runs. +:local scriptMode "osupdate"; + +## Additional parameter if you set `scriptMode` to `osupdate` or `osnotify` +# Set `true` if you want the script to perform backup every time its fired, whatever script mode is set. +:local forceBackup false; + +## Backup encryption password, no encryption if no password. +:local backupPassword ""; + +## If true, passwords will be included in exported config. +:local sensitiveDataInConfig true; + +## Update channel. Possible values: stable, long-term, testing, development +:local updateChannel "stable"; + +## Installs only patch versions of RouterOS updates. +## Works only if you set scriptMode to "osupdate" +## Means that new update will be installed only if MAJOR and MINOR version numbers remained the same as currently installed RouterOS. +## Example: v6.43.6 => major.minor.PATCH +## Script will send information if new version is greater than just patch. +:local installOnlyPatchUpdates false; + +## If true, device public IP address information will be included into the email message +:local detectPublicIpAddress true; + +## Allow anonymous statistics collection. (script mode, device model, OS version) +:local allowAnonymousStatisticsCollection true; + +##------------------------------------------------------------------------------------------## +# !!!! DO NOT CHANGE ANYTHING BELOW THIS LINE, IF YOU ARE NOT SURE WHAT YOU ARE DOING !!!! # +##------------------------------------------------------------------------------------------## + +#Script messages prefix +:local SMP "Bkp&Upd:" + +:log info "\n$SMP script \"Mikrotik RouterOS automatic backup & update\" started."; +:log info "$SMP Script Mode: $scriptMode, forceBackup: $forceBackup"; + + +# Check email settings +:if ([:len $emailAddress] = 0) do={ + :log error ("$SMP \$emailAddress variable is empty. Script stopped."); + :error "$SMP bye!"; +} +:local emailServer "" +:do { + :set emailServer [/tool e-mail get server]; +} on-error={ + # Old of getting email server before the RouterOS v7.12 + :log info "$SMP Checking email server using old command `/tool e-mail get address`"; + :set emailServer [/tool e-mail get address]; +} +:if ($emailServer = "0.0.0.0" or [:len $emailServer] = 0) do={ + :log error ("$SMP Email server address is not configured or is invalid. Please configure it in Tools -> Email and try again. Script stopped."); + :error "$SMP bye!"; +} +:if ([:len [/tool e-mail get from]] = 0 or [/tool e-mail get from] = "<>" or [:find [/tool e-mail get from] "@"] = -1) do={ + :log error ("$SMP Email configuration FROM address is missing or invalid. Please configure it in Tools -> Email and try again. Script stopped."); + :error "$SMP bye!"; +} + + +#Check if proper identity name is set +if ([:len [/system identity get name]] = 0 or [/system identity get name] = "MikroTik") do={ + :log warning ("$SMP Please set identity name of your device (System -> Identity), keep it short and informative."); +}; \ No newline at end of file