Age | Commit message (Expand) | Author | Files | Lines |
2023-01-31 | check-routeros-update: drop check for cap•••This becomes complicated with legacy wireless and wifiwave2 package, old
and new CAPsMAN. Let's just drop the check.
change-91 | Christian Hesse | 1 | -1/+1 |
2023-01-31 | introduce telegram-chat•••Druvis from Mikrotik produced a video "MikroTik Telegram bot - Chat with
your Router?". He shows his script to chat with a Router via Telegram
bot to send it commands: https://youtu.be/KLX6j3sLRIE
This script is kind of limited and has several issues... 🥴
Let's make it robust, usable, multi-device capable and just fun! 😁
(Sadly Mikrotik has a policy to not allow links in Youtube comments.
Thus my comment with several hints was removed immediately. If anybody
is in contact with Druvis... Please tell him about this script!)
change-90 | Christian Hesse | 1 | -1/+2 |
2023-01-31 | global-functions: $WaitForFile: allow to give iterations...•••... to increase timeout. Every iteration is about 100ms.
| Christian Hesse | 1 | -1/+3 |
2023-01-26 | global-functions: $LogPrintExit2: always print the message...•••... even on error. Not sure why and when this broke.
| Christian Hesse | 1 | -5/+5 |
2023-01-23 | check-certificates: make the warning time configurablechange-89 | Christian Hesse | 1 | -1/+1 |
2023-01-23 | global-functions: $MkDir: catch error on creating tmpfs | Christian Hesse | 1 | -1/+7 |
2023-01-23 | global-functions: $MkDir: create with reasonable tmpfs-max-size•••Giving no tmpfs-max-size breaks with RouterOS 7.8beta2, where a size
limit is enforced.
routeros-7.8beta2 | Christian Hesse | 1 | -1/+1 |
2023-01-20 | check-health: notify about new featureschange-88 | Christian Hesse | 1 | -1/+1 |
2023-01-20 | check-health: monitor free RAM•••---- ✂️ ----
🗃️📉️ Health warning: free RAM
The available free RAM on MikroTik is at 18% (47MiB)!
---- ✂️ ----
🗃️📈️ Health recovery: free RAM
The available free RAM on MikroTik increased to 65% (168MiB).
---- ✂️ ----
| Christian Hesse | 1 | -0/+1 |
2023-01-20 | check-health: monitor CPU load•••---- ✂️ ----
🧮️📈️ Health warning: CPU load
The average CPU load on MikroTik is at 76%!
---- ✂️ ----
🧮️📉️ Health recovery: CPU load
The average CPU load on MikroTik decreased to 64%.
---- ✂️ ----
| Christian Hesse | 1 | -0/+1 |
2023-01-20 | global-functions: $RequiredRouterOS: check for valid version string | Christian Hesse | 1 | -0/+6 |
2023-01-20 | global-functions: use new functionality for version check | Christian Hesse | 1 | -3/+2 |
2023-01-20 | global-functions: $ScriptInstallUpdate: add a version check for scripts•••New RouterOS releases bring new features, and thus new syntax.
Installing a new script on old RouterOS results in syntax errors. We
want to give clear warning messages, so by adding an extra comment into
the script...
# requires RouterOS, version=7.8beta3
... installing on unsupported RouterOS version is mitigated.
| Christian Hesse | 1 | -10/+19 |
2023-01-20 | global-functions: implement $Grep...•••... that returns the first line that matches a pattern.
| Christian Hesse | 1 | -0/+21 |
2023-01-12 | global-functions: $MkDir: no early continue for dir "tmpfs"...•••... as we want a RAM disk.
| Christian Hesse | 1 | -1/+1 |
2023-01-12 | global-functions: $ScriptInstallUpdate: handle config version decrease...•••... and log a warning.
| Christian Hesse | 1 | -1/+7 |
2023-01-12 | mod/notification-*: support extra text (or emojis 🚀) in notification tagschange-87 | Christian Hesse | 1 | -1/+1 |
2023-01-11 | mod/notification-email: move $QuotedPrintable (from global-functions)•••This is used for e-mail only...
| Christian Hesse | 1 | -37/+0 |
2023-01-10 | sms-forward: support hookschange-86 | Anatoly Bubenkov | 1 | -1/+1 |
2023-01-02 | update copyright for 2023 | Christian Hesse | 1 | -1/+1 |
2022-12-13 | global-functions: $MkDir: create a tmpfs (RAM disk)...•••... if the path starts with "tmpfs/". This helps to mitigate flash wear.
routeros-7.7rc1 | Christian Hesse | 1 | -0/+10 |
2022-12-13 | global-functions: $MkDir: create directories recursively | Christian Hesse | 1 | -14/+30 |
2022-12-13 | global-functions: $MkDir: rename internal variable | Christian Hesse | 1 | -10/+10 |
2022-12-13 | global-functions: $MkDir: fail if non-directory path exists | Christian Hesse | 1 | -0/+5 |
2022-12-12 | global-functions: check RouterOS version before loading modules | Christian Hesse | 1 | -3/+3 |
2022-12-06 | global-functions: $SymbolByUnicodeName: append variation selector-16...•••... to specify that the preceding character should be displayed with emoji
presentation.
https://unicode-table.com/en/FE0F/
| Christian Hesse | 1 | -1/+1 |
2022-11-29 | global-functions: introduce $IsMacLocallyAdministered...•••... and use it in $GetMacVendor.
| Christian Hesse | 1 | -1/+11 |
2022-11-22 | global-functions: $IsTimeSync: no cloud on x86 | Christian Hesse | 1 | -2/+3 |
2022-11-22 | global-functions: $IsTimeSync: no cloud with CHR free license | Christian Hesse | 1 | -0/+5 |
2022-11-22 | global-functions: $ScriptLock: use shorter random string•••... but with all characters from alphabet with $GetRandom20CharAlNum.
| Christian Hesse | 1 | -2/+2 |
2022-11-22 | global-functions: $MkDir: use shorter random string•••... but with all characters from alphabet with $GetRandom20CharAlNum.
| Christian Hesse | 1 | -2/+2 |
2022-09-28 | global-functions: $ScriptInstallUpdate: disable notification only...•••... if requested, but keep output and logs.
| Christian Hesse | 1 | -16/+16 |
2022-09-28 | global-functions: $ScriptInstallUpdate: drop dead code... | Christian Hesse | 1 | -4/+1 |
2022-09-25 | global-functions: $ScriptInstallUpdate: drop code for permission workaround•••This is no longer used as 'netwatch-syslog' is gone.
| Christian Hesse | 1 | -4/+1 |
2022-09-25 | drop 'netwatch-syslog'•••To filter in firewall you should use something like this:
/ip/firewall/filter/add action=reject chain=output out-interface-list=WAN port=514 protocol=udp reject-with=icmp-admin-prohibited;
/ip/firewall/filter/add action=reject chain=forward out-interface-list=WAN port=514 protocol=udp reject-with=icmp-admin-prohibited;
change-85 | Christian Hesse | 1 | -1/+1 |
2022-09-25 | introduce 'mod/notification-email', split off from global-functionschange-84 | Christian Hesse | 1 | -128/+1 |
2022-09-25 | global-functions: $FlushEmailQueue: do not flush if sending | Christian Hesse | 1 | -0/+5 |
2022-09-20 | global-functions: $GetMacVendor: detect locally administered addresses•••https://en.wikipedia.org/wiki/MAC_address#Universal_vs._local_(U/L_bit)
| Christian Hesse | 1 | -0/+4 |
2022-09-15 | global-functions: $FlushEmailQueue: use $0 for scheduler name | Christian Hesse | 1 | -6/+6 |
2022-09-15 | global-functions: $FlushEmailQueue: do not flush with resolver issues•••Flushing the mail queue with resolver issues can flood the log with
messages like:
e-mail;error Error sending e-mail <=?utf-8?Q?[MikroTik] =F0=9F=92=BE=E2=98=81 Cloud backup?=>: DNS resolve failed
Try to avoid this...
| Christian Hesse | 1 | -0/+6 |
2022-09-13 | global-functions: $GetMacVendor: switched to Let's Encrypt (R3)•••So let's check for the correct one, and drop the other.
| Christian Hesse | 1 | -1/+1 |
2022-09-09 | global-functions: $ScriptInstallUpdate: prepare for future certificate chain | Christian Hesse | 1 | -0/+4 |
2022-09-07 | global-functions: introduce $GetRandom20CharAlNum | Christian Hesse | 1 | -0/+8 |
2022-09-07 | global-functions: $GetRandom20CharHex: add optional parameter for length | Christian Hesse | 1 | -1/+3 |
2022-08-25 | global-functions: $SymbolByUnicodeName: add 'earth' | Christian Hesse | 1 | -0/+1 |
2022-08-05 | global-functions: $GetRandomNumber: use :rndnum•••This is available in RouterOS 7.x...
Signed-off-by: Christian Hesse <mail@eworm.de>
| Michael Gisbers | 1 | -8/+2 |
2022-08-05 | global-functions: $GetRandom20CharHex: use :rndstr•••This is available in RouterOS 7.x...
Signed-off-by: Christian Hesse <mail@eworm.de>
| Michael Gisbers | 1 | -1/+1 |
2022-07-21 | global-functions: $IsTimeSync: cache a positive result•••The functions do not rely on perfectly synced time. About the right time
is fine, that should make sure certificates are valid and mails are sent
with reasonable headers. So cache the result if system is fine for later
use.
| Christian Hesse | 1 | -0/+8 |
2022-07-21 | global-functions: $IsTimeSync: drop the extra condition...•••... as ddns is not required to be enabled. The public address is
available anyway, but not set in DNS.
| Christian Hesse | 1 | -1/+1 |
2022-07-21 | global-functions: $IsTimeSync: drop old code•••In RouterOS 7.x the ntp client and server are bundled and unique and
can not be unavailable.
Also it does no longer have a 'last-adjustment' property...
| Christian Hesse | 1 | -8/+2 |
2022-07-21 | global-functions: $IsFullyConnected: remove trailing space | Christian Hesse | 1 | -1/+1 |
2022-07-13 | global-functions: update initialization of empty array•••Having the parenthesis here is important for valid syntax!
| Christian Hesse | 1 | -7/+7 |
2022-07-06 | global-config: new setting to disable news and change notifications...•••... and also drop the version from global-config and
global-config-overlay.
change-83 | Christian Hesse | 1 | -14/+10 |
2022-07-06 | netwatch-notify: rename parameter: hostname -> name•••Starting with RouterOS 7.4 the netwatch tool has been extended, it can
now do tcp and http probes. Rename the parameter for reasonable naming
with services.
change-82 | Christian Hesse | 1 | -1/+1 |
2022-07-05 | global-functions: introduce function $PrettyPrint•••... to add trailing carriage return when printing to terminal:
[admin@MikroTik] > $PrettyPrint [ $DeviceInfo ]
Hostname: MikroTik
Board name: hAP ac^2
Architecture: arm
Model: RouterBOARD D52G-5HacD2HnD-TC
Serial number: 8A2A09A221A1
RouterOS:
Channel: testing
Installed: 7.4rc1
RouterOS-Scripts:
Current: 81
| Christian Hesse | 1 | -0/+10 |
2022-06-28 | global-functions: $ScriptInstallUpdate: remove script on failure when installing | Christian Hesse | 1 | -1/+7 |
2022-06-20 | global-functions: introduce function $IsFullyConnected | Christian Hesse | 1 | -0/+19 |
2022-06-20 | global-functions: rename internal function: $TimeIsSync -> $IsTimeSync | Christian Hesse | 1 | -33/+33 |
2022-06-20 | global-functions: rename internal function: $DNSIsResolving -> $IsDNSResolving | Christian Hesse | 1 | -15/+15 |
2022-06-20 | global-functions: rename internal function: $DefaultRouteIsReachable -> $IsDe... | Christian Hesse | 1 | -11/+11 |
2022-06-17 | global-functions: $WaitTimeSync: drop declaration of unused function | Christian Hesse | 1 | -1/+0 |
2022-06-16 | fix typos: 'at lease' -> 'at least' | Christian Hesse | 1 | -2/+2 |
2022-06-15 | drop script 'rotate-ntp'•••For RouterOS 6.x a separate package 'ntp' exists. This adds server
functionality, but allows ip addresses for the client only. I added the
script 'rotate-ntp' to update addresses from names...
Now with RouterOS 7.x there's no extra package and the limitation does
no longer exist. So let's just drop the script.
This adds migration code, that...
* removes the script from configuration
* removes a scheduler from configuration
* sets the configured ntp pool name for ntp client
change-81 | Christian Hesse | 1 | -9/+1 |
2022-05-20 | log-forward: change symbol for notification | Christian Hesse | 1 | -0/+1 |
2022-05-17 | global-functions: $FlushEmailQueue: return if time is not synced•••The local system time is used in the mail header. We do not want the
mails to be sent in the past, so return early (and thus wait for time
being synced).
| Christian Hesse | 1 | -0/+6 |
2022-05-12 | notify about freeze of routeros-v7 branchchange-80 | Christian Hesse | 1 | -1/+1 |
2022-05-11 | global-functions: RouterOS v7 path syntax | Christian Hesse | 1 | -83/+78 |
2022-04-28 | global-functions: $LogPrintExit2: handle empty name | Christian Hesse | 1 | -1/+1 |
2022-04-28 | global-functions: catch runtime error when loading modules | Christian Hesse | 1 | -1/+5 |
2022-04-28 | global-functions: validate syntax of modules | Christian Hesse | 1 | -1/+6 |
2022-04-28 | global-functions: set $0 with script name•••Now that we have some active code at the bottom...
| Christian Hesse | 1 | -2/+4 |
2022-04-26 | global-functions: $DefaultRouteIsReachable: update properties for ROS 7.xrouteros-7.x-6 | Christian Hesse | 1 | -1/+1 |
2022-04-26 | global-functions: $ScriptInstallUpdate: support giving comment...•••... for new scripts. This allows to have extra settings from the
beginning, for example:
$ScriptInstallUpdate script1,script2 "base-url=https://example.com/your/custom/repository/"
| Christian Hesse | 1 | -2/+3 |
2022-03-30 | introduce backup-partitionchange-79 | Christian Hesse | 1 | -1/+1 |
2022-03-08 | global-functions: (re-)introduce global $Read•••... to interactively read input from user on terminal.
| Christian Hesse | 1 | -0/+6 |
2022-03-01 | global-functions: $FlushEmailQueue: delay if "in-progress"...•••Something else is sending a mail... Let's wait and hope the status is
not confused.
| Christian Hesse | 1 | -0/+1 |
2022-02-24 | global-functions: $DeviceInfo: firmware only if upgrade pending | Christian Hesse | 1 | -1/+2 |
2022-02-21 | doc/mod: notify about new documentationchange-78 | Christian Hesse | 1 | -1/+1 |
2022-02-10 | global-functions: $DownloadPackage: handle special cases•••This is a RouterOS v7 only change!
* Revert commit 1e6931c8e34d5035cb07baa98b57eccbcd4278ab (but keep the
cherry-picked one in branch routeros-v6).
* Drop special case 'routeros-$arch', which no longer exists.
* Update package name 'system' to 'routeros'. This should be the correct
name, and is expected by CAPsMAN. No idea why package-name property
for the file is different...
| Christian Hesse | 1 | -7/+3 |
2022-02-10 | global-functions: $MkDir: do not act without directory | Christian Hesse | 1 | -0/+4 |
2022-02-10 | introduce firmware-upgrade-rebootchange-77 | Christian Hesse | 1 | -1/+1 |
2022-02-10 | netwatch-notify: allow to suppress notification on host downchange-76 | Christian Hesse | 1 | -1/+1 |
2022-01-20 | global-functions: $ScriptInstallUpdate: quote names in log output | Christian Hesse | 1 | -9/+9 |
2022-01-20 | global-functions: $ScriptInstallUpdate: give final url in debug output | Christian Hesse | 1 | -7/+6 |
2022-01-17 | global-functions: $DownloadPackage: handle special case with name•••For RouterOS 6.x bundled package version and architecture are swapped.
Closes: #21
| Christian Hesse | 1 | -0/+4 |
2022-01-17 | global-functions: $DownloadPackage: give url in debug output | Christian Hesse | 1 | -3/+3 |
2022-01-14 | global: notify about merging 'routeros-v7' into 'main'change-75 | Christian Hesse | 1 | -1/+1 |
2022-01-14 | global-functions: bump the required version for RouterOS 7.x•••... but keep a warning when running RouterOS v6.
| Christian Hesse | 1 | -5/+4 |
2022-01-07 | hotspot-to-wpa: support settings from templatechange-74 | Christian Hesse | 1 | -1/+1 |
2022-01-06 | Migrate configuration and send notification on renameschange-73 | Christian Hesse | 1 | -1/+1 |
2022-01-03 | introduce netwatch-dnschange-72 | Christian Hesse | 1 | -1/+1 |
2022-01-01 | update copyright for 2022 | Christian Hesse | 1 | -1/+1 |
2021-12-20 | global-functions: $RequiredRouterOS: fix warning•••Passing a boolean does not work... Handle as string.
| Christian Hesse | 1 | -5/+4 |
2021-12-14 | global-functions: $DownloadPackage: make directory first•••The fetch command creates the directory itself, however using $MkDir
gives better error message when creating directory fails.
| Christian Hesse | 1 | -0/+6 |
2021-12-14 | global-functions: $MkDir: log error | Christian Hesse | 1 | -1/+3 |
2021-12-14 | global-functions: $NotificationFunctions->"email": do not declare unused func... | Christian Hesse | 1 | -1/+0 |
2021-12-13 | global-functions: $DeviceInfo: show license level if available•••This now shows license level for CHR.
The property is named different for Routerboards. As these have the
license bundled to hardware anyway we do not show it there.
| Christian Hesse | 1 | -0/+3 |
2021-12-13 | README: changes for RouterOS v6change-71 | Christian Hesse | 1 | -1/+1 |
2021-12-10 | global-functions: $ScriptLock: simplify cleanup code | Christian Hesse | 1 | -5/+2 |
2021-12-09 | global-functions: $ScriptLock: remove ticket in a loop•••This was not required with RouterOS v6, but for any reason removing a
ticket may fail with RouterOS v7 in very rare cases. So remove in a
loop...
| Christian Hesse | 1 | -1/+2 |