diff options
Diffstat (limited to 'doc')
97 files changed, 1647 insertions, 3386 deletions
diff --git a/doc/accesslist-duplicates.md b/doc/accesslist-duplicates.md index 50720b1..a1f9198 100644 --- a/doc/accesslist-duplicates.md +++ b/doc/accesslist-duplicates.md @@ -1,7 +1,14 @@ Find and remove access list duplicates ====================================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -15,14 +22,19 @@ entries in wireless access list. Requirements and installation ----------------------------- -Depending on whether you use CAPsMAN (`/caps-man`) or local wireless -interface (`/interface/wireless`) you need to install a different script. +Depending on whether you use `wifi` package (`/interface/wifi`), legacy +wifi with CAPsMAN (`/caps-man`) or local wireless interface +(`/interface/wireless`) you need to install a different script. + +For `wifi`: + + $ScriptInstallUpdate accesslist-duplicates.wifi; -For CAPsMAN: +For legacy CAPsMAN: $ScriptInstallUpdate accesslist-duplicates.capsman; -For local interface: +For legacy local interface: $ScriptInstallUpdate accesslist-duplicates.local; @@ -31,7 +43,7 @@ Usage and invocation Run this script from a terminal: - /system/script/run accesslist-duplicates.local; + /system/script/run accesslist-duplicates.wifi; ![screenshot: example](accesslist-duplicates.d/01-example.avif) @@ -41,5 +53,5 @@ See also * [Collect MAC addresses in wireless access list](collect-wireless-mac.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/backup-cloud.d/notification.avif b/doc/backup-cloud.d/notification.avif Binary files differnew file mode 100644 index 0000000..e533908 --- /dev/null +++ b/doc/backup-cloud.d/notification.avif diff --git a/doc/backup-cloud.d/notification.svg b/doc/backup-cloud.d/notification.svg deleted file mode 100644 index 23d78e5..0000000 --- a/doc/backup-cloud.d/notification.svg +++ /dev/null @@ -1,216 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - width="403.7796" - height="273.77948" - viewBox="0 0 106.83336 72.437472" - version="1.1" - id="svg8" - inkscape:version="1.1 (c4e8f9ed74, 2021-05-24)" - sodipodi:docname="backup-cloud.svg" - inkscape:export-filename="logo.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <defs - id="defs2"> - <rect - x="180" - y="0" - width="658.20044" - height="397.81946" - id="rect4813" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.52" - inkscape:cx="24.013158" - inkscape:cy="90.789474" - inkscape:document-units="px" - inkscape:current-layer="layer1" - inkscape:document-rotation="0" - showgrid="true" - units="px" - inkscape:window-width="1920" - inkscape:window-height="1047" - inkscape:window-x="0" - inkscape:window-y="33" - inkscape:window-maximized="1" - inkscape:pagecheckerboard="0" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0"> - <inkscape:grid - type="xygrid" - id="grid833" - originx="16.37501" - originy="11.083325" /> - </sodipodi:namedview> - <metadata - id="metadata5"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(16.375,11.083332)"> - <rect - style="fill:#e6e6e6;stroke:#6c5d53;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="rect857" - width="105.83334" - height="71.437485" - x="-15.875001" - y="-10.583333" - rx="1.3229166" /> - <g - id="g884" - transform="matrix(0.5,0,0,0.5,-12.40625,-7.1145834)" - style="stroke-width:2"> - <path - sodipodi:type="star" - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264584;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path899" - sodipodi:sides="4" - sodipodi:cx="12.700001" - sodipodi:cy="12.700001" - sodipodi:r1="14.81729" - sodipodi:r2="10.477405" - sodipodi:arg1="0.78539816" - sodipodi:arg2="1.5707963" - inkscape:flatsided="true" - inkscape:rounded="0.2" - inkscape:randomized="0" - d="m 23.177407,23.177407 c -2.963458,2.963458 -17.9913546,2.963458 -20.9548127,0 -2.96345803,-2.963458 -2.96345808,-17.9913546 0,-20.9548127 2.963458,-2.96345803 17.9913547,-2.96345808 20.9548127,0 2.963458,2.963458 2.963458,17.9913547 0,20.9548127 z" /> - <g - id="g871" - style="stroke-width:2"> - <g - aria-label="#!rsc" - id="text837"> - <path - d="M 7.483197,16.645533 V 15.621671 H 6.9371377 l 0.165768,-1.277388 H 5.8255169 l -0.165768,1.277388 h -0.975106 l 0.165768,-1.277388 H 3.5730221 l -0.165768,1.277388 H 2.7051778 v 1.023862 H 3.2707393 L 3.0269628,18.517736 H 2.3443886 v 1.023861 H 2.890448 L 2.7051778,20.935999 H 3.9825666 L 4.1678368,19.541597 H 5.1429427 L 4.9576726,20.935999 H 6.2350614 L 6.4203315,19.541597 H 7.1224078 V 18.517736 H 6.5568464 l 0.2437764,-1.872203 z m -2.2037394,1.872203 h -0.975106 l 0.2437765,-1.872203 h 0.975106 z" - style="stroke-width:0.529163px" - id="path851" /> - <path - d="m 9.6186715,14.178515 h -1.638178 l 0.1950212,4.270964 h 1.2481356 z m -0.819089,5.15831 c -0.487553,0 -0.8775954,0.399794 -0.8775954,0.877596 0,0.487552 0.3900424,0.887346 0.8775954,0.887346 0.497304,0 0.8873464,-0.399794 0.8873464,-0.887346 0,-0.477802 -0.3900424,-0.877596 -0.8873464,-0.877596 z" - style="stroke-width:0.529163px" - id="path853" /> - <path - d="m 13.372827,15.61192 c -0.594815,0 -1.10187,0.429047 -1.335895,1.150625 l -0.136515,-1.004359 h -1.335895 v 5.177813 h 1.540667 v -2.603533 c 0.175519,-0.770334 0.438798,-1.228633 1.072617,-1.228633 0.165768,0 0.302283,0.02925 0.468051,0.06826 l 0.243776,-1.491912 c -0.175519,-0.04875 -0.321785,-0.06826 -0.516806,-0.06826 z" - style="stroke-width:0.529163px" - id="path855" /> - <path - d="m 16.181119,15.592418 c -1.306642,0 -2.11598,0.692326 -2.11598,1.579672 0,0.799587 0.507055,1.326144 1.530916,1.618676 0.936102,0.263278 1.092119,0.37054 1.092119,0.721578 0,0.312034 -0.282781,0.487553 -0.750832,0.487553 -0.507055,0 -0.984857,-0.204772 -1.374899,-0.507055 l -0.750832,0.838591 c 0.507055,0.4583 1.267638,0.770334 2.164736,0.770334 1.287139,0 2.30125,-0.633819 2.30125,-1.706435 0,-0.926351 -0.575313,-1.355398 -1.599174,-1.64793 -0.926351,-0.273029 -1.062866,-0.390042 -1.062866,-0.663072 0,-0.234025 0.204773,-0.390042 0.624068,-0.390042 0.448549,0 0.877595,0.146266 1.277389,0.399793 l 0.565561,-0.867844 C 17.604773,15.836195 16.93195,15.592418 16.181119,15.592418 Z" - style="stroke-width:0.529163px" - id="path857" /> - <path - d="m 21.280919,15.592418 c -1.550418,0 -2.535275,1.150625 -2.535275,2.798554 0,1.638178 0.975106,2.710795 2.564528,2.710795 0.711828,0 1.267638,-0.234026 1.74544,-0.614317 l -0.672823,-0.955604 c -0.37054,0.234026 -0.624068,0.351038 -0.994608,0.351038 -0.614317,0 -1.023861,-0.351038 -1.023861,-1.501663 0,-1.160376 0.380291,-1.608925 1.043363,-1.608925 0.351038,0 0.653321,0.117013 0.984857,0.370541 l 0.663072,-0.9166 c -0.497304,-0.419295 -1.053114,-0.633819 -1.774693,-0.633819 z" - style="stroke-width:0.529163px" - id="path859" /> - </g> - <g - id="g1542" - transform="matrix(2,0,0,2,-0.41134438,3.175)" - style="stroke-width:1"> - <path - d="M 4.9596016,-1.0195918 C 5.3675734,1.8116029 6.8867822,3.5302649 9.983482,3.6714361 7.0655129,4.7878541 4.0581782,2.1638833 4.9596016,-1.0195918" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path943" /> - <path - d="m 3.3406657,-0.52095963 c 0.034969,-0.00777 0.038854,0.015542 0.041445,0.041445 C 3.4805417,1.3259222 4.2420891,2.6948942 5.2510098,3.6312866 6.2599306,4.5676787 7.6146558,5.3253406 9.525,5.2916667 5.9477993,6.7163303 2.1879835,3.2932527 3.3393705,-0.52095963" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path945" /> - </g> - </g> - </g> - <text - xml:space="preserve" - transform="matrix(0.26458333,0,0,0.26458333,-44.950001,-6.6039365)" - id="text4811" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:15px;font-family:'Fira Mono', 'Roboto Mono', monospace;-inkscape-font-specification:'Fira Mono, Roboto Mono, monospace, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;white-space:pre;shape-inside:url(#rect4813);fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="-248.88142" - y="0"><tspan - x="180" - y="10.85" - id="tspan13469">[MikroTik] 💾☁ Cloud backup -</tspan><tspan - x="180" - y="26.082813" - id="tspan13471"> -</tspan><tspan - x="180" - y="41.082813" - id="tspan13473">Uploaded backup for MikroTik to cloud. -</tspan><tspan - x="180" - y="56.082811" - id="tspan13475"> -</tspan><tspan - x="180" - y="71.082811" - id="tspan13477">Hostname: MikroTik -</tspan><tspan - x="180" - y="86.082811" - id="tspan13479">Board name: CHR -</tspan><tspan - x="180" - y="101.08281" - id="tspan13481">Architecture: x86_64 -</tspan><tspan - x="180" - y="116.08281" - id="tspan13483">RouterOS: -</tspan><tspan - x="180" - y="131.08281" - id="tspan13485"> Channel: stable -</tspan><tspan - x="180" - y="146.08282" - id="tspan13487"> Installed: 7.1.3 -</tspan><tspan - x="180" - y="161.08282" - id="tspan13489">RouterOS-Scripts: -</tspan><tspan - x="180" - y="176.08282" - id="tspan13491"> Version: 83 -</tspan><tspan - x="180" - y="191.08282" - id="tspan13493"> -</tspan><tspan - x="180" - y="206.08282" - id="tspan13495">Name: cloud-20220224-092419 -</tspan><tspan - x="180" - y="221.08282" - id="tspan13497">Size: 370767 B (362 KiB) -</tspan><tspan - x="180" - y="236.08282" - id="tspan13499">Download key: LLDBfPcWXxmSetWilqeJX5V</tspan></text> - </g> -</svg> diff --git a/doc/backup-cloud.md b/doc/backup-cloud.md index b0dc3ef..1f9e123 100644 --- a/doc/backup-cloud.md +++ b/doc/backup-cloud.md @@ -1,7 +1,14 @@ Upload backup to Mikrotik cloud =============================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -12,14 +19,14 @@ Description This script uploads [binary backup to Mikrotik cloud](https://wiki.mikrotik.com/wiki/Manual:IP/Cloud#Backup). -> ⚠️ **Warning**: The used command can hit errors that a script can not handle. -> This may result in script termination (where no notification is sent) or -> malfunction of fetch command (where all up- and downloads break) for some -> time. Failed notifications are queued then. +> ⚠️ **Warning**: The used command can hit errors that a script can with +> workaround only. A notification *should* be sent anyway. But it can result +> in malfunction of fetch command (where all up- and downloads break) for +> some time. Failed notifications are queued then. ### Sample notification -![backup-cloud notification](backup-cloud.d/notification.svg) +![backup-cloud notification](backup-cloud.d/notification.avif) Requirements and installation ----------------------------- @@ -36,8 +43,14 @@ The configuration goes to `global-config-overlay`, these are the parameters: * `BackupPassword`: password to encrypt the backup with * `BackupRandomDelay`: delay up to amount of seconds when run from scheduler -Also notification settings are required for e-mail, -[matrix](mod/notification-matrix.md) and/or +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + +Also notification settings are required for +[e-mail](mod/notification-email.md), +[matrix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or [telegram](mod/notification-telegram.md). Usage and invocation @@ -55,9 +68,9 @@ See also -------- * [Send backup via e-mail](backup-email.md) -* [Save configuration to fallback partition](doc/backup-partition.md) +* [Save configuration to fallback partition](backup-partition.md) * [Upload backup to server](backup-upload.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/backup-email.md b/doc/backup-email.md index e04a988..3b1dbb2 100644 --- a/doc/backup-email.md +++ b/doc/backup-email.md @@ -1,7 +1,14 @@ Send backup via e-mail ====================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -15,9 +22,12 @@ configuration export (`/export terse show-sensitive`) via e-mail. Requirements and installation ----------------------------- -Just install the script: +Just install the script and the required module: + + $ScriptInstallUpdate mod/notification-email,backup-email; - $ScriptInstallUpdate backup-email; +Also make sure you configure +[sending notifications via e-mail](mod/notification-email.md). Configuration ------------- @@ -26,10 +36,13 @@ The configuration goes to `global-config-overlay`, these are the parameters: * `BackupSendBinary`: whether to send binary backup * `BackupSendExport`: whether to send configuration export +* `BackupSendGlobalConfig`: whether to send `global-config-overlay` * `BackupPassword`: password to encrypt the backup with * `BackupRandomDelay`: delay up to amount of seconds when run from scheduler -Also valid e-mail settings are required to send mails. +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. Usage and invocation -------------------- @@ -46,9 +59,10 @@ See also -------- * [Upload backup to Mikrotik cloud](backup-cloud.md) -* [Save configuration to fallback partition](doc/backup-partition.md) +* [Save configuration to fallback partition](backup-partition.md) +* [Send notifications via e-mail](mod/notification-email.md) * [Upload backup to server](backup-upload.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/backup-partition.md b/doc/backup-partition.md index b502330..1cef2c9 100644 --- a/doc/backup-partition.md +++ b/doc/backup-partition.md @@ -1,7 +1,14 @@ Save configuration to fallback partition ======================================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -11,10 +18,20 @@ Description This script saves the current configuration to fallback [partition](https://wiki.mikrotik.com/wiki/Manual:Partitions). +It can also copy-over the RouterOS installation when run interactively +or just before a feature update. For this to work you need a device with sufficient flash storage that is properly partitioned. +To make you aware of a possible issue a scheduler logging a warning is +added in the backup partition's configuration. You may want to use +[log-forward](log-forward.md) to be notified. + +> ⚠️ **Warning**: By default only the configuration is saved to backup +> partition. Every now and then you should copy your installation over +> for a recent RouterOS version! See below for options. + Requirements and installation ----------------------------- @@ -22,6 +39,18 @@ Just install the script: $ScriptInstallUpdate backup-partition; +Configuration +------------- + +The configuration goes to `global-config-overlay`, the only parameter is: + +* `BackupPartitionCopyBeforeFeatureUpdate`: copy-over the RouterOS + installation when a feature update is pending + +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + Usage and invocation -------------------- @@ -29,6 +58,9 @@ Just run the script: /system/script/run backup-partition; +When run interactively from terminal it supports to copy-over the RouterOS +installation when versions differ. + Creating a scheduler may be an option: /system/scheduler/add interval=1w name=backup-partition on-event="/system/script/run backup-partition;" start-time=09:30:00; @@ -39,7 +71,8 @@ See also * [Upload backup to Mikrotik cloud](backup-cloud.md) * [Send backup via e-mail](backup-email.md) * [Upload backup to server](backup-upload.md) +* [Forward log messages via notification](log-forward.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/backup-upload.d/notification.avif b/doc/backup-upload.d/notification.avif Binary files differnew file mode 100644 index 0000000..83cfb18 --- /dev/null +++ b/doc/backup-upload.d/notification.avif diff --git a/doc/backup-upload.d/notification.svg b/doc/backup-upload.d/notification.svg deleted file mode 100644 index b8af90e..0000000 --- a/doc/backup-upload.d/notification.svg +++ /dev/null @@ -1,212 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - width="443.77951" - height="263.77945" - viewBox="0 0 117.41666 69.791631" - version="1.1" - id="svg8" - inkscape:version="1.1 (c4e8f9ed74, 2021-05-24)" - sodipodi:docname="backup-upload.svg" - inkscape:export-filename="logo.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <defs - id="defs2"> - <rect - x="180" - y="0" - width="658.20044" - height="397.81946" - id="rect4813" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.52" - inkscape:cx="345.72368" - inkscape:cy="90.789474" - inkscape:document-units="px" - inkscape:current-layer="layer1" - inkscape:document-rotation="0" - showgrid="true" - units="px" - inkscape:window-width="1920" - inkscape:window-height="1047" - inkscape:window-x="0" - inkscape:window-y="33" - inkscape:window-maximized="1" - inkscape:pagecheckerboard="0" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0"> - <inkscape:grid - type="xygrid" - id="grid833" - originx="16.375005" - originy="11.08332" /> - </sodipodi:namedview> - <metadata - id="metadata5"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(16.374996,11.083328)"> - <rect - style="fill:#e6e6e6;stroke:#6c5d53;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="rect857" - width="116.41666" - height="68.791649" - x="-15.875001" - y="-10.583333" - rx="1.4552083" /> - <g - id="g884" - transform="matrix(0.5,0,0,0.5,-12.40625,-7.1145834)" - style="stroke-width:2"> - <path - sodipodi:type="star" - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264584;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path899" - sodipodi:sides="4" - sodipodi:cx="12.700001" - sodipodi:cy="12.700001" - sodipodi:r1="14.81729" - sodipodi:r2="10.477405" - sodipodi:arg1="0.78539816" - sodipodi:arg2="1.5707963" - inkscape:flatsided="true" - inkscape:rounded="0.2" - inkscape:randomized="0" - d="m 23.177407,23.177407 c -2.963458,2.963458 -17.9913546,2.963458 -20.9548127,0 -2.96345803,-2.963458 -2.96345808,-17.9913546 0,-20.9548127 2.963458,-2.96345803 17.9913547,-2.96345808 20.9548127,0 2.963458,2.963458 2.963458,17.9913547 0,20.9548127 z" /> - <g - id="g871" - style="stroke-width:2"> - <g - aria-label="#!rsc" - id="text837"> - <path - d="M 7.483197,16.645533 V 15.621671 H 6.9371377 l 0.165768,-1.277388 H 5.8255169 l -0.165768,1.277388 h -0.975106 l 0.165768,-1.277388 H 3.5730221 l -0.165768,1.277388 H 2.7051778 v 1.023862 H 3.2707393 L 3.0269628,18.517736 H 2.3443886 v 1.023861 H 2.890448 L 2.7051778,20.935999 H 3.9825666 L 4.1678368,19.541597 H 5.1429427 L 4.9576726,20.935999 H 6.2350614 L 6.4203315,19.541597 H 7.1224078 V 18.517736 H 6.5568464 l 0.2437764,-1.872203 z m -2.2037394,1.872203 h -0.975106 l 0.2437765,-1.872203 h 0.975106 z" - style="stroke-width:0.529163px" - id="path851" /> - <path - d="m 9.6186715,14.178515 h -1.638178 l 0.1950212,4.270964 h 1.2481356 z m -0.819089,5.15831 c -0.487553,0 -0.8775954,0.399794 -0.8775954,0.877596 0,0.487552 0.3900424,0.887346 0.8775954,0.887346 0.497304,0 0.8873464,-0.399794 0.8873464,-0.887346 0,-0.477802 -0.3900424,-0.877596 -0.8873464,-0.877596 z" - style="stroke-width:0.529163px" - id="path853" /> - <path - d="m 13.372827,15.61192 c -0.594815,0 -1.10187,0.429047 -1.335895,1.150625 l -0.136515,-1.004359 h -1.335895 v 5.177813 h 1.540667 v -2.603533 c 0.175519,-0.770334 0.438798,-1.228633 1.072617,-1.228633 0.165768,0 0.302283,0.02925 0.468051,0.06826 l 0.243776,-1.491912 c -0.175519,-0.04875 -0.321785,-0.06826 -0.516806,-0.06826 z" - style="stroke-width:0.529163px" - id="path855" /> - <path - d="m 16.181119,15.592418 c -1.306642,0 -2.11598,0.692326 -2.11598,1.579672 0,0.799587 0.507055,1.326144 1.530916,1.618676 0.936102,0.263278 1.092119,0.37054 1.092119,0.721578 0,0.312034 -0.282781,0.487553 -0.750832,0.487553 -0.507055,0 -0.984857,-0.204772 -1.374899,-0.507055 l -0.750832,0.838591 c 0.507055,0.4583 1.267638,0.770334 2.164736,0.770334 1.287139,0 2.30125,-0.633819 2.30125,-1.706435 0,-0.926351 -0.575313,-1.355398 -1.599174,-1.64793 -0.926351,-0.273029 -1.062866,-0.390042 -1.062866,-0.663072 0,-0.234025 0.204773,-0.390042 0.624068,-0.390042 0.448549,0 0.877595,0.146266 1.277389,0.399793 l 0.565561,-0.867844 C 17.604773,15.836195 16.93195,15.592418 16.181119,15.592418 Z" - style="stroke-width:0.529163px" - id="path857" /> - <path - d="m 21.280919,15.592418 c -1.550418,0 -2.535275,1.150625 -2.535275,2.798554 0,1.638178 0.975106,2.710795 2.564528,2.710795 0.711828,0 1.267638,-0.234026 1.74544,-0.614317 l -0.672823,-0.955604 c -0.37054,0.234026 -0.624068,0.351038 -0.994608,0.351038 -0.614317,0 -1.023861,-0.351038 -1.023861,-1.501663 0,-1.160376 0.380291,-1.608925 1.043363,-1.608925 0.351038,0 0.653321,0.117013 0.984857,0.370541 l 0.663072,-0.9166 c -0.497304,-0.419295 -1.053114,-0.633819 -1.774693,-0.633819 z" - style="stroke-width:0.529163px" - id="path859" /> - </g> - <g - id="g1542" - transform="matrix(2,0,0,2,-0.41134438,3.175)" - style="stroke-width:1"> - <path - d="M 4.9596016,-1.0195918 C 5.3675734,1.8116029 6.8867822,3.5302649 9.983482,3.6714361 7.0655129,4.7878541 4.0581782,2.1638833 4.9596016,-1.0195918" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path943" /> - <path - d="m 3.3406657,-0.52095963 c 0.034969,-0.00777 0.038854,0.015542 0.041445,0.041445 C 3.4805417,1.3259222 4.2420891,2.6948942 5.2510098,3.6312866 6.2599306,4.5676787 7.6146558,5.3253406 9.525,5.2916667 5.9477993,6.7163303 2.1879835,3.2932527 3.3393705,-0.52095963" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path945" /> - </g> - </g> - </g> - <text - xml:space="preserve" - transform="matrix(0.26458333,0,0,0.26458333,-44.949998,-6.5499577)" - id="text4811" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:15px;font-family:'Fira Mono', 'Roboto Mono', monospace;-inkscape-font-specification:'Fira Mono, Roboto Mono, monospace, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;white-space:pre;shape-inside:url(#rect4813);fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="-248.88142" - y="0"><tspan - x="180" - y="10.85" - id="tspan10771">[MikroTik] 💾⬆ Backup & Config upload -</tspan><tspan - x="180" - y="25.85" - id="tspan10773"> -</tspan><tspan - x="180" - y="40.85" - id="tspan10775">Backup and config export upload for MikroTik. -</tspan><tspan - x="180" - y="55.85" - id="tspan10777"> -</tspan><tspan - x="180" - y="70.85" - id="tspan10779">Hostname: MikroTik -</tspan><tspan - x="180" - y="85.85" - id="tspan10781">Board name: CHR -</tspan><tspan - x="180" - y="100.85" - id="tspan10783">Architecture: x86_64 -</tspan><tspan - x="180" - y="115.85" - id="tspan10785">RouterOS: -</tspan><tspan - x="180" - y="130.85" - id="tspan10787"> Channel: stable -</tspan><tspan - x="180" - y="145.85" - id="tspan10789"> Installed: 7.1.3 -</tspan><tspan - x="180" - y="160.85" - id="tspan10791">RouterOS-Scripts: -</tspan><tspan - x="180" - y="175.85" - id="tspan10793"> Version: 83 -</tspan><tspan - x="180" - y="190.85" - id="tspan10795"> -</tspan><tspan - x="180" - y="205.85" - id="tspan10797">Backup file: MikroTik_example_com.backup -</tspan><tspan - x="180" - y="220.85" - id="tspan10799">Config file: MikroTik_example_com.rsc</tspan></text> - </g> -</svg> diff --git a/doc/backup-upload.md b/doc/backup-upload.md index 58c1e56..c44217c 100644 --- a/doc/backup-upload.md +++ b/doc/backup-upload.md @@ -1,7 +1,14 @@ Upload backup to server ======================= -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -19,7 +26,7 @@ configuration export (`/export terse show-sensitive`) to external server. ### Sample notification -![backup-upload notification](backup-upload.d/notification.svg) +![backup-upload notification](backup-upload.d/notification.avif) Requirements and installation ----------------------------- @@ -35,14 +42,21 @@ The configuration goes to `global-config-overlay`, these are the parameters: * `BackupSendBinary`: whether to send binary backup * `BackupSendExport`: whether to send configuration export +* `BackupSendGlobalConfig`: whether to send `global-config-overlay` * `BackupPassword`: password to encrypt the backup with * `BackupRandomDelay`: delay up to amount of seconds when run from scheduler * `BackupUploadUrl`: url to upload to * `BackupUploadUser`: username for server authentication * `BackupUploadPass`: password for server authentication -Also notification settings are required for e-mail, -[matrix](mod/notification-matrix.md) and/or +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + +Also notification settings are required for +[e-mail](mod/notification-email.md), +[matrix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or [telegram](mod/notification-telegram.md). ### Issues with SFTP client @@ -71,8 +85,8 @@ See also * [Upload backup to Mikrotik cloud](backup-cloud.md) * [Send backup via e-mail](backup-email.md) -* [Save configuration to fallback partition](doc/backup-partition.md) +* [Save configuration to fallback partition](backup-partition.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/capsman-download-packages.md b/doc/capsman-download-packages.md index 0fdd6cb..c68900e 100644 --- a/doc/capsman-download-packages.md +++ b/doc/capsman-download-packages.md @@ -1,7 +1,14 @@ Download packages for CAP upgrade from CAPsMAN ============================================= -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -18,24 +25,47 @@ This script automatically downloads these packages. Requirements and installation ----------------------------- -Just install the script on CAPsMAN device: +Make sure you have the `package-path` set in your CAPsMAN configuration, +as that is where packages are downloaded to and where the system expects +them. + +Then just install the script on CAPsMAN device. +Depending on whether you use `wifi` package (`/interface/wifi`) or legacy +wifi with CAPsMAN (`/caps-man`) you need to install a different script. + +For `wifi`: + + $ScriptInstallUpdate capsman-download-packages.wifi; + +For legacy CAPsMAN: - $ScriptInstallUpdate capsman-download-packages; + $ScriptInstallUpdate capsman-download-packages.capsman; -Optionally add a scheduler to run after startup: +Optionally add a scheduler to run after startup. For `wifi`: - /system/scheduler/add name=capsman-download-packages on-event="/system/script/run capsman-download-packages;" start-time=startup; + /system/scheduler/add name=capsman-download-packages on-event="/system/script/run capsman-download-packages.wifi;" start-time=startup; + +For legacy CAPsMAN: + + /system/scheduler/add name=capsman-download-packages on-event="/system/script/run capsman-download-packages.capsman;" start-time=startup; Packages available in local storage in older version are downloaded -unconditionally. The script tries to download missing packages by guessing -from system log. +unconditionally. + +If no packages are found the script downloads a default set of packages: + + * `wifi`: `routeros` and `wifi-qcom` for *arm* and *arm64*, `wifi-qcom-ac` for *arm* + * legacy CAPsMAN: `routeros` and `wireless` for *arm* and *mipsbe* + +> ℹ️ **Info**: If you have packages in the directory and things go wrong for +> what ever unknown reason: Remove **all** packages and start over. Usage and invocation -------------------- Run the script manually: - /system/script/run capsman-download-packages; + /system/script/run capsman-download-packages.wifi; ... or from scheduler. @@ -49,5 +79,5 @@ See also * [Run rolling CAP upgrades from CAPsMAN](capsman-rolling-upgrade.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/capsman-rolling-upgrade.md b/doc/capsman-rolling-upgrade.md index 94a2a79..27d855f 100644 --- a/doc/capsman-rolling-upgrade.md +++ b/doc/capsman-rolling-upgrade.md @@ -1,7 +1,14 @@ Run rolling CAP upgrades from CAPsMAN ===================================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -20,9 +27,17 @@ parallel. Requirements and installation ----------------------------- -Just install the script: +Just install the script on CAPsMAN device. +Depending on whether you use `wifi` package (`/interface/wifi`) or legacy +wifi with CAPsMAN (`/caps-man`) you need to install a different script. + +For `wifi`: + + $ScriptInstallUpdate capsman-rolling-upgrade.wifi; + +For legacy CAPsMAN: - $ScriptInstallUpdate capsman-rolling-upgrade; + $ScriptInstallUpdate capsman-rolling-upgrade.capsman; Usage and invocation -------------------- @@ -33,7 +48,7 @@ that script when required. Alternatively run it manually: - /system/script/run capsman-rolling-upgrade; + /system/script/run capsman-rolling-upgrade.wifi; See also -------- @@ -41,5 +56,5 @@ See also * [Download packages for CAP upgrade from CAPsMAN](capsman-download-packages.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/certificate-renew-issued.md b/doc/certificate-renew-issued.md index d8201a7..91a1914 100644 --- a/doc/certificate-renew-issued.md +++ b/doc/certificate-renew-issued.md @@ -1,7 +1,14 @@ Renew locally issued certificates ================================= -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -28,6 +35,10 @@ parameter: * `CertRenewPass`: an array holding individual passphrases for certificates +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + Usage and invocation -------------------- @@ -46,5 +57,5 @@ See also * [Renew certificates and notify on expiration](check-certificates.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/check-certificates.d/notification.avif b/doc/check-certificates.d/notification.avif Binary files differnew file mode 100644 index 0000000..7c250da --- /dev/null +++ b/doc/check-certificates.d/notification.avif diff --git a/doc/check-certificates.d/notification.svg b/doc/check-certificates.d/notification.svg deleted file mode 100644 index a299963..0000000 --- a/doc/check-certificates.d/notification.svg +++ /dev/null @@ -1,196 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - width="683.7796" - height="203.77953" - viewBox="0 0 180.9167 53.916655" - version="1.1" - id="svg8" - inkscape:version="1.1 (c4e8f9ed74, 2021-05-24)" - sodipodi:docname="check-certificates.svg" - inkscape:export-filename="logo.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <defs - id="defs2"> - <rect - x="180" - y="0" - width="658.20044" - height="397.81946" - id="rect4813" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.52" - inkscape:cx="337.17105" - inkscape:cy="90.789474" - inkscape:document-units="px" - inkscape:current-layer="layer1" - inkscape:document-rotation="0" - showgrid="true" - units="px" - inkscape:window-width="1920" - inkscape:window-height="1047" - inkscape:window-x="0" - inkscape:window-y="33" - inkscape:window-maximized="1" - inkscape:pagecheckerboard="0" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0"> - <inkscape:grid - type="xygrid" - id="grid833" - originx="16.375009" - originy="11.083328" /> - </sodipodi:namedview> - <metadata - id="metadata5"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(16.375002,11.083333)"> - <rect - style="fill:#e6e6e6;stroke:#6c5d53;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="rect857" - width="179.91667" - height="52.91666" - x="-15.875002" - y="-10.583333" - rx="2.2489583" /> - <g - id="g884" - transform="matrix(0.5,0,0,0.5,-12.40625,-7.1145834)" - style="stroke-width:2"> - <path - sodipodi:type="star" - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264584;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path899" - sodipodi:sides="4" - sodipodi:cx="12.700001" - sodipodi:cy="12.700001" - sodipodi:r1="14.81729" - sodipodi:r2="10.477405" - sodipodi:arg1="0.78539816" - sodipodi:arg2="1.5707963" - inkscape:flatsided="true" - inkscape:rounded="0.2" - inkscape:randomized="0" - d="m 23.177407,23.177407 c -2.963458,2.963458 -17.9913546,2.963458 -20.9548127,0 -2.96345803,-2.963458 -2.96345808,-17.9913546 0,-20.9548127 2.963458,-2.96345803 17.9913547,-2.96345808 20.9548127,0 2.963458,2.963458 2.963458,17.9913547 0,20.9548127 z" /> - <g - id="g871" - style="stroke-width:2"> - <g - aria-label="#!rsc" - id="text837"> - <path - d="M 7.483197,16.645533 V 15.621671 H 6.9371377 l 0.165768,-1.277388 H 5.8255169 l -0.165768,1.277388 h -0.975106 l 0.165768,-1.277388 H 3.5730221 l -0.165768,1.277388 H 2.7051778 v 1.023862 H 3.2707393 L 3.0269628,18.517736 H 2.3443886 v 1.023861 H 2.890448 L 2.7051778,20.935999 H 3.9825666 L 4.1678368,19.541597 H 5.1429427 L 4.9576726,20.935999 H 6.2350614 L 6.4203315,19.541597 H 7.1224078 V 18.517736 H 6.5568464 l 0.2437764,-1.872203 z m -2.2037394,1.872203 h -0.975106 l 0.2437765,-1.872203 h 0.975106 z" - style="stroke-width:0.529163px" - id="path851" /> - <path - d="m 9.6186715,14.178515 h -1.638178 l 0.1950212,4.270964 h 1.2481356 z m -0.819089,5.15831 c -0.487553,0 -0.8775954,0.399794 -0.8775954,0.877596 0,0.487552 0.3900424,0.887346 0.8775954,0.887346 0.497304,0 0.8873464,-0.399794 0.8873464,-0.887346 0,-0.477802 -0.3900424,-0.877596 -0.8873464,-0.877596 z" - style="stroke-width:0.529163px" - id="path853" /> - <path - d="m 13.372827,15.61192 c -0.594815,0 -1.10187,0.429047 -1.335895,1.150625 l -0.136515,-1.004359 h -1.335895 v 5.177813 h 1.540667 v -2.603533 c 0.175519,-0.770334 0.438798,-1.228633 1.072617,-1.228633 0.165768,0 0.302283,0.02925 0.468051,0.06826 l 0.243776,-1.491912 c -0.175519,-0.04875 -0.321785,-0.06826 -0.516806,-0.06826 z" - style="stroke-width:0.529163px" - id="path855" /> - <path - d="m 16.181119,15.592418 c -1.306642,0 -2.11598,0.692326 -2.11598,1.579672 0,0.799587 0.507055,1.326144 1.530916,1.618676 0.936102,0.263278 1.092119,0.37054 1.092119,0.721578 0,0.312034 -0.282781,0.487553 -0.750832,0.487553 -0.507055,0 -0.984857,-0.204772 -1.374899,-0.507055 l -0.750832,0.838591 c 0.507055,0.4583 1.267638,0.770334 2.164736,0.770334 1.287139,0 2.30125,-0.633819 2.30125,-1.706435 0,-0.926351 -0.575313,-1.355398 -1.599174,-1.64793 -0.926351,-0.273029 -1.062866,-0.390042 -1.062866,-0.663072 0,-0.234025 0.204773,-0.390042 0.624068,-0.390042 0.448549,0 0.877595,0.146266 1.277389,0.399793 l 0.565561,-0.867844 C 17.604773,15.836195 16.93195,15.592418 16.181119,15.592418 Z" - style="stroke-width:0.529163px" - id="path857" /> - <path - d="m 21.280919,15.592418 c -1.550418,0 -2.535275,1.150625 -2.535275,2.798554 0,1.638178 0.975106,2.710795 2.564528,2.710795 0.711828,0 1.267638,-0.234026 1.74544,-0.614317 l -0.672823,-0.955604 c -0.37054,0.234026 -0.624068,0.351038 -0.994608,0.351038 -0.614317,0 -1.023861,-0.351038 -1.023861,-1.501663 0,-1.160376 0.380291,-1.608925 1.043363,-1.608925 0.351038,0 0.653321,0.117013 0.984857,0.370541 l 0.663072,-0.9166 c -0.497304,-0.419295 -1.053114,-0.633819 -1.774693,-0.633819 z" - style="stroke-width:0.529163px" - id="path859" /> - </g> - <g - id="g1542" - transform="matrix(2,0,0,2,-0.41134438,3.175)" - style="stroke-width:1"> - <path - d="M 4.9596016,-1.0195918 C 5.3675734,1.8116029 6.8867822,3.5302649 9.983482,3.6714361 7.0655129,4.7878541 4.0581782,2.1638833 4.9596016,-1.0195918" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path943" /> - <path - d="m 3.3406657,-0.52095963 c 0.034969,-0.00777 0.038854,0.015542 0.041445,0.041445 C 3.4805417,1.3259222 4.2420891,2.6948942 5.2510098,3.6312866 6.2599306,4.5676787 7.6146558,5.3253406 9.525,5.2916667 5.9477993,6.7163303 2.1879835,3.2932527 3.3393705,-0.52095963" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path945" /> - </g> - </g> - </g> - <text - xml:space="preserve" - transform="matrix(0.26458333,0,0,0.26458333,-45.013503,-6.6039375)" - id="text4811" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:15px;font-family:'Fira Mono', 'Roboto Mono', monospace;-inkscape-font-specification:'Fira Mono, Roboto Mono, monospace, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;white-space:pre;shape-inside:url(#rect4813);fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="-248.88142" - y="0"><tspan - x="180" - y="10.85" - id="tspan2179">[MikroTik] 🔏 Certificate renewed -</tspan><tspan - x="180" - y="25.85" - id="tspan2181"> -</tspan><tspan - x="180" - y="40.85" - id="tspan2183">A certificate on MikroTik has been renewed. -</tspan><tspan - x="180" - y="55.85" - id="tspan2185"> -</tspan><tspan - x="180" - y="70.85" - id="tspan2187">Name: example.com -</tspan><tspan - x="180" - y="85.85" - id="tspan2189">CommonName: example.com -</tspan><tspan - x="180" - y="100.85" - id="tspan2191">Private key: available -</tspan><tspan - x="180" - y="115.85" - id="tspan2193">Fingerprint: cc54cdd01fcd7698ecb71213874be776906eb33d26cd57754d168632f14c4c8b -</tspan><tspan - x="180" - y="130.85" - id="tspan2195">Issuer: R3 -</tspan><tspan - x="180" - y="145.85" - id="tspan2197">Validity: may/22/2021 22:29:34 to aug/20/2021 22:29:34 -</tspan><tspan - x="180" - y="160.85" - id="tspan2199">Expires in: 11w 5d 08:18:06</tspan></text> - </g> -</svg> diff --git a/doc/check-certificates.md b/doc/check-certificates.md index f8a4eae..636f719 100644 --- a/doc/check-certificates.md +++ b/doc/check-certificates.md @@ -1,7 +1,14 @@ Renew certificates and notify on expiration =========================================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -14,7 +21,7 @@ certificates that are still about to expire. ### Sample notification -![check-certificates notification](check-certificates.d/notification.svg) +![check-certificates notification](check-certificates.d/notification.avif) Requirements and installation ----------------------------- @@ -26,18 +33,27 @@ Just install the script: Configuration ------------- -The expiry notifications just require notification settings for e-mail, -[matrix](mod/notification-matrix.md) and/or -[telegram](mod/notification-telegram.md). - For automatic download and renewal of certificates you need configuration in `global-config-overlay`, these are the parameters: * `CertRenewPass`: an array of passphrases to try +* `CertRenewTime`: on what remaining time to try a renew * `CertRenewUrl`: the url to download certificates from +* `CertWarnTime`: on what remaining time to warn via notification + +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. -Certificates on the web server should be named `CN.pem` (`PEM` format) or -`CN.p12` (`PKCS#12` format). +Certificates on the web server should be named by their common name, like +`CN.pem` (`PEM` format) or`CN.p12` (`PKCS#12` format). Alternatively any +subject alternative name (aka *Subject Alt Name* or *SAN*) can be used. + +Also notification settings are required for +[e-mail](mod/notification-email.md), +[matrix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or +[telegram](mod/notification-telegram.md). Usage and invocation -------------------- @@ -50,9 +66,26 @@ Just run the script: /system/scheduler/add interval=1d name=check-certificates on-event="/system/script/run check-certificates;" start-time=startup; -Alternatively running on startup may be desired: - /system/scheduler/add name=check-certificates-startup on-event="/system/script/run check-certificates;" start-time=startup; +Tips & Tricks +------------- + +### Schedule at startup + +The script checks for full connectivity before acting, so scheduling at +startup is perfectly valid: + + /system/scheduler/add name=check-certificates@startup on-event="/system/script/run check-certificates;" start-time=startup; + +### Initial import + +Given you have a certificate on you server, you can use `check-certificates` +for the initial import. Just create a *dummy* certificate with short lifetime +that matches criteria to be renewed: + + /certificate/add name=example.com common-name=example.com days-valid=1; + /certificate/sign example.com; + /system/script/run check-certificates; See also -------- @@ -60,5 +93,5 @@ See also * [Renew locally issued certificates](certificate-renew-issued.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/check-health.d/notification-01-cpu-utilization-high.avif b/doc/check-health.d/notification-01-cpu-utilization-high.avif Binary files differnew file mode 100644 index 0000000..326e7fe --- /dev/null +++ b/doc/check-health.d/notification-01-cpu-utilization-high.avif diff --git a/doc/check-health.d/notification-01-voltage.svg b/doc/check-health.d/notification-01-voltage.svg deleted file mode 100644 index b762f61..0000000 --- a/doc/check-health.d/notification-01-voltage.svg +++ /dev/null @@ -1,176 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - width="443.77954" - height="123.77953" - viewBox="0 0 117.41667 32.749991" - version="1.1" - id="svg8" - inkscape:version="1.1 (c4e8f9ed74, 2021-05-24)" - sodipodi:docname="check-health-voltage.svg" - inkscape:export-filename="logo.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <defs - id="defs2"> - <rect - x="180" - y="0" - width="658.20044" - height="397.81946" - id="rect4813" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.52" - inkscape:cx="152.96053" - inkscape:cy="90.789474" - inkscape:document-units="px" - inkscape:current-layer="layer1" - inkscape:document-rotation="0" - showgrid="true" - units="px" - inkscape:window-width="1920" - inkscape:window-height="1047" - inkscape:window-x="0" - inkscape:window-y="33" - inkscape:window-maximized="1" - inkscape:pagecheckerboard="0" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0"> - <inkscape:grid - type="xygrid" - id="grid833" - originx="16.375007" - originy="11.083327" /> - </sodipodi:namedview> - <metadata - id="metadata5"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(16.375001,11.083333)"> - <rect - style="fill:#e6e6e6;stroke:#6c5d53;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="rect857" - width="116.41666" - height="31.749996" - x="-15.875001" - y="-10.583333" - rx="1.4552082" /> - <g - id="g884" - transform="matrix(0.5,0,0,0.5,-12.40625,-7.1145834)" - style="stroke-width:2"> - <path - sodipodi:type="star" - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264584;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path899" - sodipodi:sides="4" - sodipodi:cx="12.700001" - sodipodi:cy="12.700001" - sodipodi:r1="14.81729" - sodipodi:r2="10.477405" - sodipodi:arg1="0.78539816" - sodipodi:arg2="1.5707963" - inkscape:flatsided="true" - inkscape:rounded="0.2" - inkscape:randomized="0" - d="m 23.177407,23.177407 c -2.963458,2.963458 -17.9913546,2.963458 -20.9548127,0 -2.96345803,-2.963458 -2.96345808,-17.9913546 0,-20.9548127 2.963458,-2.96345803 17.9913547,-2.96345808 20.9548127,0 2.963458,2.963458 2.963458,17.9913547 0,20.9548127 z" /> - <g - id="g871" - style="stroke-width:2"> - <g - aria-label="#!rsc" - id="text837"> - <path - d="M 7.483197,16.645533 V 15.621671 H 6.9371377 l 0.165768,-1.277388 H 5.8255169 l -0.165768,1.277388 h -0.975106 l 0.165768,-1.277388 H 3.5730221 l -0.165768,1.277388 H 2.7051778 v 1.023862 H 3.2707393 L 3.0269628,18.517736 H 2.3443886 v 1.023861 H 2.890448 L 2.7051778,20.935999 H 3.9825666 L 4.1678368,19.541597 H 5.1429427 L 4.9576726,20.935999 H 6.2350614 L 6.4203315,19.541597 H 7.1224078 V 18.517736 H 6.5568464 l 0.2437764,-1.872203 z m -2.2037394,1.872203 h -0.975106 l 0.2437765,-1.872203 h 0.975106 z" - style="stroke-width:0.529163px" - id="path851" /> - <path - d="m 9.6186715,14.178515 h -1.638178 l 0.1950212,4.270964 h 1.2481356 z m -0.819089,5.15831 c -0.487553,0 -0.8775954,0.399794 -0.8775954,0.877596 0,0.487552 0.3900424,0.887346 0.8775954,0.887346 0.497304,0 0.8873464,-0.399794 0.8873464,-0.887346 0,-0.477802 -0.3900424,-0.877596 -0.8873464,-0.877596 z" - style="stroke-width:0.529163px" - id="path853" /> - <path - d="m 13.372827,15.61192 c -0.594815,0 -1.10187,0.429047 -1.335895,1.150625 l -0.136515,-1.004359 h -1.335895 v 5.177813 h 1.540667 v -2.603533 c 0.175519,-0.770334 0.438798,-1.228633 1.072617,-1.228633 0.165768,0 0.302283,0.02925 0.468051,0.06826 l 0.243776,-1.491912 c -0.175519,-0.04875 -0.321785,-0.06826 -0.516806,-0.06826 z" - style="stroke-width:0.529163px" - id="path855" /> - <path - d="m 16.181119,15.592418 c -1.306642,0 -2.11598,0.692326 -2.11598,1.579672 0,0.799587 0.507055,1.326144 1.530916,1.618676 0.936102,0.263278 1.092119,0.37054 1.092119,0.721578 0,0.312034 -0.282781,0.487553 -0.750832,0.487553 -0.507055,0 -0.984857,-0.204772 -1.374899,-0.507055 l -0.750832,0.838591 c 0.507055,0.4583 1.267638,0.770334 2.164736,0.770334 1.287139,0 2.30125,-0.633819 2.30125,-1.706435 0,-0.926351 -0.575313,-1.355398 -1.599174,-1.64793 -0.926351,-0.273029 -1.062866,-0.390042 -1.062866,-0.663072 0,-0.234025 0.204773,-0.390042 0.624068,-0.390042 0.448549,0 0.877595,0.146266 1.277389,0.399793 l 0.565561,-0.867844 C 17.604773,15.836195 16.93195,15.592418 16.181119,15.592418 Z" - style="stroke-width:0.529163px" - id="path857" /> - <path - d="m 21.280919,15.592418 c -1.550418,0 -2.535275,1.150625 -2.535275,2.798554 0,1.638178 0.975106,2.710795 2.564528,2.710795 0.711828,0 1.267638,-0.234026 1.74544,-0.614317 l -0.672823,-0.955604 c -0.37054,0.234026 -0.624068,0.351038 -0.994608,0.351038 -0.614317,0 -1.023861,-0.351038 -1.023861,-1.501663 0,-1.160376 0.380291,-1.608925 1.043363,-1.608925 0.351038,0 0.653321,0.117013 0.984857,0.370541 l 0.663072,-0.9166 c -0.497304,-0.419295 -1.053114,-0.633819 -1.774693,-0.633819 z" - style="stroke-width:0.529163px" - id="path859" /> - </g> - <g - id="g1542" - transform="matrix(2,0,0,2,-0.41134438,3.175)" - style="stroke-width:1"> - <path - d="M 4.9596016,-1.0195918 C 5.3675734,1.8116029 6.8867822,3.5302649 9.983482,3.6714361 7.0655129,4.7878541 4.0581782,2.1638833 4.9596016,-1.0195918" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path943" /> - <path - d="m 3.3406657,-0.52095963 c 0.034969,-0.00777 0.038854,0.015542 0.041445,0.041445 C 3.4805417,1.3259222 4.2420891,2.6948942 5.2510098,3.6312866 6.2599306,4.5676787 7.6146558,5.3253406 9.525,5.2916667 5.9477993,6.7163303 2.1879835,3.2932527 3.3393705,-0.52095963" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path945" /> - </g> - </g> - </g> - <text - xml:space="preserve" - transform="matrix(0.26458333,0,0,0.26458333,-45.077003,-6.6039379)" - id="text4811" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:15px;font-family:'Fira Mono', 'Roboto Mono', monospace;-inkscape-font-specification:'Fira Mono, Roboto Mono, monospace, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;white-space:pre;shape-inside:url(#rect4813);fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="-248.88142" - y="0"><tspan - x="180" - y="10.85" - id="tspan13643">[MikroTik] ⚡📉 Health warning: voltage -</tspan><tspan - x="180" - y="25.85" - id="tspan13645"> -</tspan><tspan - x="180" - y="40.85" - id="tspan13647">The voltage on MikroTik jumped more than 10%. -</tspan><tspan - x="180" - y="55.85" - id="tspan13649"> -</tspan><tspan - x="180" - y="70.85" - id="tspan13651">old value: 16.2V -</tspan><tspan - x="180" - y="85.85" - id="tspan13653">new value: 12.4V</tspan></text> - </g> -</svg> diff --git a/doc/check-health.d/notification-02-cpu-utilization-ok.avif b/doc/check-health.d/notification-02-cpu-utilization-ok.avif Binary files differnew file mode 100644 index 0000000..811ccd7 --- /dev/null +++ b/doc/check-health.d/notification-02-cpu-utilization-ok.avif diff --git a/doc/check-health.d/notification-02-temperature-high.svg b/doc/check-health.d/notification-02-temperature-high.svg deleted file mode 100644 index 15250f8..0000000 --- a/doc/check-health.d/notification-02-temperature-high.svg +++ /dev/null @@ -1,164 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - width="503.77954" - height="83.77951" - viewBox="0 0 133.29167 22.166657" - version="1.1" - id="svg8" - inkscape:version="1.1 (c4e8f9ed74, 2021-05-24)" - sodipodi:docname="check-health-temperature-high.svg" - inkscape:export-filename="logo.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <defs - id="defs2"> - <rect - x="180" - y="0" - width="658.20044" - height="397.81946" - id="rect4813" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.52" - inkscape:cx="143.09211" - inkscape:cy="90.789474" - inkscape:document-units="px" - inkscape:current-layer="layer1" - inkscape:document-rotation="0" - showgrid="true" - units="px" - inkscape:window-width="1920" - inkscape:window-height="1047" - inkscape:window-x="0" - inkscape:window-y="33" - inkscape:window-maximized="1" - inkscape:pagecheckerboard="0" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0"> - <inkscape:grid - type="xygrid" - id="grid833" - originx="16.375007" - originy="11.083326" /> - </sodipodi:namedview> - <metadata - id="metadata5"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(16.375,11.083332)"> - <rect - style="fill:#e6e6e6;stroke:#6c5d53;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="rect857" - width="132.29166" - height="21.166662" - x="-15.875001" - y="-10.583333" - rx="1.6536458" /> - <g - id="g884" - transform="matrix(0.5,0,0,0.5,-12.40625,-7.1145834)" - style="stroke-width:2"> - <path - sodipodi:type="star" - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264584;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path899" - sodipodi:sides="4" - sodipodi:cx="12.700001" - sodipodi:cy="12.700001" - sodipodi:r1="14.81729" - sodipodi:r2="10.477405" - sodipodi:arg1="0.78539816" - sodipodi:arg2="1.5707963" - inkscape:flatsided="true" - inkscape:rounded="0.2" - inkscape:randomized="0" - d="m 23.177407,23.177407 c -2.963458,2.963458 -17.9913546,2.963458 -20.9548127,0 -2.96345803,-2.963458 -2.96345808,-17.9913546 0,-20.9548127 2.963458,-2.96345803 17.9913547,-2.96345808 20.9548127,0 2.963458,2.963458 2.963458,17.9913547 0,20.9548127 z" /> - <g - id="g871" - style="stroke-width:2"> - <g - aria-label="#!rsc" - id="text837"> - <path - d="M 7.483197,16.645533 V 15.621671 H 6.9371377 l 0.165768,-1.277388 H 5.8255169 l -0.165768,1.277388 h -0.975106 l 0.165768,-1.277388 H 3.5730221 l -0.165768,1.277388 H 2.7051778 v 1.023862 H 3.2707393 L 3.0269628,18.517736 H 2.3443886 v 1.023861 H 2.890448 L 2.7051778,20.935999 H 3.9825666 L 4.1678368,19.541597 H 5.1429427 L 4.9576726,20.935999 H 6.2350614 L 6.4203315,19.541597 H 7.1224078 V 18.517736 H 6.5568464 l 0.2437764,-1.872203 z m -2.2037394,1.872203 h -0.975106 l 0.2437765,-1.872203 h 0.975106 z" - style="stroke-width:0.529163px" - id="path851" /> - <path - d="m 9.6186715,14.178515 h -1.638178 l 0.1950212,4.270964 h 1.2481356 z m -0.819089,5.15831 c -0.487553,0 -0.8775954,0.399794 -0.8775954,0.877596 0,0.487552 0.3900424,0.887346 0.8775954,0.887346 0.497304,0 0.8873464,-0.399794 0.8873464,-0.887346 0,-0.477802 -0.3900424,-0.877596 -0.8873464,-0.877596 z" - style="stroke-width:0.529163px" - id="path853" /> - <path - d="m 13.372827,15.61192 c -0.594815,0 -1.10187,0.429047 -1.335895,1.150625 l -0.136515,-1.004359 h -1.335895 v 5.177813 h 1.540667 v -2.603533 c 0.175519,-0.770334 0.438798,-1.228633 1.072617,-1.228633 0.165768,0 0.302283,0.02925 0.468051,0.06826 l 0.243776,-1.491912 c -0.175519,-0.04875 -0.321785,-0.06826 -0.516806,-0.06826 z" - style="stroke-width:0.529163px" - id="path855" /> - <path - d="m 16.181119,15.592418 c -1.306642,0 -2.11598,0.692326 -2.11598,1.579672 0,0.799587 0.507055,1.326144 1.530916,1.618676 0.936102,0.263278 1.092119,0.37054 1.092119,0.721578 0,0.312034 -0.282781,0.487553 -0.750832,0.487553 -0.507055,0 -0.984857,-0.204772 -1.374899,-0.507055 l -0.750832,0.838591 c 0.507055,0.4583 1.267638,0.770334 2.164736,0.770334 1.287139,0 2.30125,-0.633819 2.30125,-1.706435 0,-0.926351 -0.575313,-1.355398 -1.599174,-1.64793 -0.926351,-0.273029 -1.062866,-0.390042 -1.062866,-0.663072 0,-0.234025 0.204773,-0.390042 0.624068,-0.390042 0.448549,0 0.877595,0.146266 1.277389,0.399793 l 0.565561,-0.867844 C 17.604773,15.836195 16.93195,15.592418 16.181119,15.592418 Z" - style="stroke-width:0.529163px" - id="path857" /> - <path - d="m 21.280919,15.592418 c -1.550418,0 -2.535275,1.150625 -2.535275,2.798554 0,1.638178 0.975106,2.710795 2.564528,2.710795 0.711828,0 1.267638,-0.234026 1.74544,-0.614317 l -0.672823,-0.955604 c -0.37054,0.234026 -0.624068,0.351038 -0.994608,0.351038 -0.614317,0 -1.023861,-0.351038 -1.023861,-1.501663 0,-1.160376 0.380291,-1.608925 1.043363,-1.608925 0.351038,0 0.653321,0.117013 0.984857,0.370541 l 0.663072,-0.9166 c -0.497304,-0.419295 -1.053114,-0.633819 -1.774693,-0.633819 z" - style="stroke-width:0.529163px" - id="path859" /> - </g> - <g - id="g1542" - transform="matrix(2,0,0,2,-0.41134438,3.175)" - style="stroke-width:1"> - <path - d="M 4.9596016,-1.0195918 C 5.3675734,1.8116029 6.8867822,3.5302649 9.983482,3.6714361 7.0655129,4.7878541 4.0581782,2.1638833 4.9596016,-1.0195918" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path943" /> - <path - d="m 3.3406657,-0.52095963 c 0.034969,-0.00777 0.038854,0.015542 0.041445,0.041445 C 3.4805417,1.3259222 4.2420891,2.6948942 5.2510098,3.6312866 6.2599306,4.5676787 7.6146558,5.3253406 9.525,5.2916667 5.9477993,6.7163303 2.1879835,3.2932527 3.3393705,-0.52095963" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path945" /> - </g> - </g> - </g> - <text - xml:space="preserve" - transform="matrix(0.26458333,0,0,0.26458333,-45.077002,-6.6039367)" - id="text4811" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:15px;font-family:'Fira Mono', 'Roboto Mono', monospace;-inkscape-font-specification:'Fira Mono, Roboto Mono, monospace, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;white-space:pre;shape-inside:url(#rect4813);fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="-248.88142" - y="0"><tspan - x="180" - y="10.85" - id="tspan13709">[MikroTik] 🔥 Health warning: temperature -</tspan><tspan - x="180" - y="25.85" - id="tspan13711"> -</tspan><tspan - x="180" - y="40.85" - id="tspan13713">The temperature on MikroTik is above threshold: 51°C</tspan></text> - </g> -</svg> diff --git a/doc/check-health.d/notification-03-ram-utilization-high.avif b/doc/check-health.d/notification-03-ram-utilization-high.avif Binary files differnew file mode 100644 index 0000000..59155c5 --- /dev/null +++ b/doc/check-health.d/notification-03-ram-utilization-high.avif diff --git a/doc/check-health.d/notification-03-temperature-ok.svg b/doc/check-health.d/notification-03-temperature-ok.svg deleted file mode 100644 index d517e57..0000000 --- a/doc/check-health.d/notification-03-temperature-ok.svg +++ /dev/null @@ -1,164 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - width="533.77954" - height="83.77951" - viewBox="0 0 141.22918 22.166657" - version="1.1" - id="svg8" - inkscape:version="1.1 (c4e8f9ed74, 2021-05-24)" - sodipodi:docname="check-health-temperature-ok.svg" - inkscape:export-filename="logo.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <defs - id="defs2"> - <rect - x="180" - y="0" - width="658.20044" - height="397.81946" - id="rect4813" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.52" - inkscape:cx="127.96053" - inkscape:cy="90.789474" - inkscape:document-units="px" - inkscape:current-layer="layer1" - inkscape:document-rotation="0" - showgrid="true" - units="px" - inkscape:window-width="1920" - inkscape:window-height="1047" - inkscape:window-x="0" - inkscape:window-y="33" - inkscape:window-maximized="1" - inkscape:pagecheckerboard="0" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0"> - <inkscape:grid - type="xygrid" - id="grid833" - originx="16.37501" - originy="11.083325" /> - </sodipodi:namedview> - <metadata - id="metadata5"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(16.375,11.083333)"> - <rect - style="fill:#e6e6e6;stroke:#6c5d53;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="rect857" - width="140.22916" - height="21.16666" - x="-15.875" - y="-10.583333" - rx="1.7528646" /> - <g - id="g884" - transform="matrix(0.5,0,0,0.5,-12.40625,-7.1145834)" - style="stroke-width:2"> - <path - sodipodi:type="star" - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264584;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path899" - sodipodi:sides="4" - sodipodi:cx="12.700001" - sodipodi:cy="12.700001" - sodipodi:r1="14.81729" - sodipodi:r2="10.477405" - sodipodi:arg1="0.78539816" - sodipodi:arg2="1.5707963" - inkscape:flatsided="true" - inkscape:rounded="0.2" - inkscape:randomized="0" - d="m 23.177407,23.177407 c -2.963458,2.963458 -17.9913546,2.963458 -20.9548127,0 -2.96345803,-2.963458 -2.96345808,-17.9913546 0,-20.9548127 2.963458,-2.96345803 17.9913547,-2.96345808 20.9548127,0 2.963458,2.963458 2.963458,17.9913547 0,20.9548127 z" /> - <g - id="g871" - style="stroke-width:2"> - <g - aria-label="#!rsc" - id="text837"> - <path - d="M 7.483197,16.645533 V 15.621671 H 6.9371377 l 0.165768,-1.277388 H 5.8255169 l -0.165768,1.277388 h -0.975106 l 0.165768,-1.277388 H 3.5730221 l -0.165768,1.277388 H 2.7051778 v 1.023862 H 3.2707393 L 3.0269628,18.517736 H 2.3443886 v 1.023861 H 2.890448 L 2.7051778,20.935999 H 3.9825666 L 4.1678368,19.541597 H 5.1429427 L 4.9576726,20.935999 H 6.2350614 L 6.4203315,19.541597 H 7.1224078 V 18.517736 H 6.5568464 l 0.2437764,-1.872203 z m -2.2037394,1.872203 h -0.975106 l 0.2437765,-1.872203 h 0.975106 z" - style="stroke-width:0.529163px" - id="path851" /> - <path - d="m 9.6186715,14.178515 h -1.638178 l 0.1950212,4.270964 h 1.2481356 z m -0.819089,5.15831 c -0.487553,0 -0.8775954,0.399794 -0.8775954,0.877596 0,0.487552 0.3900424,0.887346 0.8775954,0.887346 0.497304,0 0.8873464,-0.399794 0.8873464,-0.887346 0,-0.477802 -0.3900424,-0.877596 -0.8873464,-0.877596 z" - style="stroke-width:0.529163px" - id="path853" /> - <path - d="m 13.372827,15.61192 c -0.594815,0 -1.10187,0.429047 -1.335895,1.150625 l -0.136515,-1.004359 h -1.335895 v 5.177813 h 1.540667 v -2.603533 c 0.175519,-0.770334 0.438798,-1.228633 1.072617,-1.228633 0.165768,0 0.302283,0.02925 0.468051,0.06826 l 0.243776,-1.491912 c -0.175519,-0.04875 -0.321785,-0.06826 -0.516806,-0.06826 z" - style="stroke-width:0.529163px" - id="path855" /> - <path - d="m 16.181119,15.592418 c -1.306642,0 -2.11598,0.692326 -2.11598,1.579672 0,0.799587 0.507055,1.326144 1.530916,1.618676 0.936102,0.263278 1.092119,0.37054 1.092119,0.721578 0,0.312034 -0.282781,0.487553 -0.750832,0.487553 -0.507055,0 -0.984857,-0.204772 -1.374899,-0.507055 l -0.750832,0.838591 c 0.507055,0.4583 1.267638,0.770334 2.164736,0.770334 1.287139,0 2.30125,-0.633819 2.30125,-1.706435 0,-0.926351 -0.575313,-1.355398 -1.599174,-1.64793 -0.926351,-0.273029 -1.062866,-0.390042 -1.062866,-0.663072 0,-0.234025 0.204773,-0.390042 0.624068,-0.390042 0.448549,0 0.877595,0.146266 1.277389,0.399793 l 0.565561,-0.867844 C 17.604773,15.836195 16.93195,15.592418 16.181119,15.592418 Z" - style="stroke-width:0.529163px" - id="path857" /> - <path - d="m 21.280919,15.592418 c -1.550418,0 -2.535275,1.150625 -2.535275,2.798554 0,1.638178 0.975106,2.710795 2.564528,2.710795 0.711828,0 1.267638,-0.234026 1.74544,-0.614317 l -0.672823,-0.955604 c -0.37054,0.234026 -0.624068,0.351038 -0.994608,0.351038 -0.614317,0 -1.023861,-0.351038 -1.023861,-1.501663 0,-1.160376 0.380291,-1.608925 1.043363,-1.608925 0.351038,0 0.653321,0.117013 0.984857,0.370541 l 0.663072,-0.9166 c -0.497304,-0.419295 -1.053114,-0.633819 -1.774693,-0.633819 z" - style="stroke-width:0.529163px" - id="path859" /> - </g> - <g - id="g1542" - transform="matrix(2,0,0,2,-0.41134438,3.175)" - style="stroke-width:1"> - <path - d="M 4.9596016,-1.0195918 C 5.3675734,1.8116029 6.8867822,3.5302649 9.983482,3.6714361 7.0655129,4.7878541 4.0581782,2.1638833 4.9596016,-1.0195918" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path943" /> - <path - d="m 3.3406657,-0.52095963 c 0.034969,-0.00777 0.038854,0.015542 0.041445,0.041445 C 3.4805417,1.3259222 4.2420891,2.6948942 5.2510098,3.6312866 6.2599306,4.5676787 7.6146558,5.3253406 9.525,5.2916667 5.9477993,6.7163303 2.1879835,3.2932527 3.3393705,-0.52095963" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path945" /> - </g> - </g> - </g> - <text - xml:space="preserve" - transform="matrix(0.26458333,0,0,0.26458333,-45.077001,-6.6039376)" - id="text4811" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:15px;font-family:'Fira Mono', 'Roboto Mono', monospace;-inkscape-font-specification:'Fira Mono, Roboto Mono, monospace, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;white-space:pre;shape-inside:url(#rect4813);fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="-248.88142" - y="0"><tspan - x="180" - y="10.85" - id="tspan13679">[MikroTik] ✅ Health recovery: temperature -</tspan><tspan - x="180" - y="25.85" - id="tspan13681"> -</tspan><tspan - x="180" - y="40.85" - id="tspan13683">The temperature on MikroTik dropped below threshold: 48°C</tspan></text> - </g> -</svg> diff --git a/doc/check-health.d/notification-04-psu-fail.svg b/doc/check-health.d/notification-04-psu-fail.svg deleted file mode 100644 index 5d5d573..0000000 --- a/doc/check-health.d/notification-04-psu-fail.svg +++ /dev/null @@ -1,164 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - width="513.7796" - height="83.779518" - viewBox="0 0 135.93752 22.166659" - version="1.1" - id="svg8" - inkscape:version="1.1 (c4e8f9ed74, 2021-05-24)" - sodipodi:docname="check-health-psu-fail.svg" - inkscape:export-filename="logo.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <defs - id="defs2"> - <rect - x="180" - y="0" - width="658.20044" - height="397.81946" - id="rect4813" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.52" - inkscape:cx="133.22368" - inkscape:cy="90.789474" - inkscape:document-units="px" - inkscape:current-layer="layer1" - inkscape:document-rotation="0" - showgrid="true" - units="px" - inkscape:window-width="1920" - inkscape:window-height="1047" - inkscape:window-x="0" - inkscape:window-y="33" - inkscape:window-maximized="1" - inkscape:pagecheckerboard="0" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0"> - <inkscape:grid - type="xygrid" - id="grid833" - originx="16.375009" - originy="11.083327" /> - </sodipodi:namedview> - <metadata - id="metadata5"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(16.375001,11.083333)"> - <rect - style="fill:#e6e6e6;stroke:#6c5d53;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="rect857" - width="134.9375" - height="21.166662" - x="-15.875001" - y="-10.583333" - rx="1.6867187" /> - <g - id="g884" - transform="matrix(0.5,0,0,0.5,-12.40625,-7.1145834)" - style="stroke-width:2"> - <path - sodipodi:type="star" - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264584;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path899" - sodipodi:sides="4" - sodipodi:cx="12.700001" - sodipodi:cy="12.700001" - sodipodi:r1="14.81729" - sodipodi:r2="10.477405" - sodipodi:arg1="0.78539816" - sodipodi:arg2="1.5707963" - inkscape:flatsided="true" - inkscape:rounded="0.2" - inkscape:randomized="0" - d="m 23.177407,23.177407 c -2.963458,2.963458 -17.9913546,2.963458 -20.9548127,0 -2.96345803,-2.963458 -2.96345808,-17.9913546 0,-20.9548127 2.963458,-2.96345803 17.9913547,-2.96345808 20.9548127,0 2.963458,2.963458 2.963458,17.9913547 0,20.9548127 z" /> - <g - id="g871" - style="stroke-width:2"> - <g - aria-label="#!rsc" - id="text837"> - <path - d="M 7.483197,16.645533 V 15.621671 H 6.9371377 l 0.165768,-1.277388 H 5.8255169 l -0.165768,1.277388 h -0.975106 l 0.165768,-1.277388 H 3.5730221 l -0.165768,1.277388 H 2.7051778 v 1.023862 H 3.2707393 L 3.0269628,18.517736 H 2.3443886 v 1.023861 H 2.890448 L 2.7051778,20.935999 H 3.9825666 L 4.1678368,19.541597 H 5.1429427 L 4.9576726,20.935999 H 6.2350614 L 6.4203315,19.541597 H 7.1224078 V 18.517736 H 6.5568464 l 0.2437764,-1.872203 z m -2.2037394,1.872203 h -0.975106 l 0.2437765,-1.872203 h 0.975106 z" - style="stroke-width:0.529163px" - id="path851" /> - <path - d="m 9.6186715,14.178515 h -1.638178 l 0.1950212,4.270964 h 1.2481356 z m -0.819089,5.15831 c -0.487553,0 -0.8775954,0.399794 -0.8775954,0.877596 0,0.487552 0.3900424,0.887346 0.8775954,0.887346 0.497304,0 0.8873464,-0.399794 0.8873464,-0.887346 0,-0.477802 -0.3900424,-0.877596 -0.8873464,-0.877596 z" - style="stroke-width:0.529163px" - id="path853" /> - <path - d="m 13.372827,15.61192 c -0.594815,0 -1.10187,0.429047 -1.335895,1.150625 l -0.136515,-1.004359 h -1.335895 v 5.177813 h 1.540667 v -2.603533 c 0.175519,-0.770334 0.438798,-1.228633 1.072617,-1.228633 0.165768,0 0.302283,0.02925 0.468051,0.06826 l 0.243776,-1.491912 c -0.175519,-0.04875 -0.321785,-0.06826 -0.516806,-0.06826 z" - style="stroke-width:0.529163px" - id="path855" /> - <path - d="m 16.181119,15.592418 c -1.306642,0 -2.11598,0.692326 -2.11598,1.579672 0,0.799587 0.507055,1.326144 1.530916,1.618676 0.936102,0.263278 1.092119,0.37054 1.092119,0.721578 0,0.312034 -0.282781,0.487553 -0.750832,0.487553 -0.507055,0 -0.984857,-0.204772 -1.374899,-0.507055 l -0.750832,0.838591 c 0.507055,0.4583 1.267638,0.770334 2.164736,0.770334 1.287139,0 2.30125,-0.633819 2.30125,-1.706435 0,-0.926351 -0.575313,-1.355398 -1.599174,-1.64793 -0.926351,-0.273029 -1.062866,-0.390042 -1.062866,-0.663072 0,-0.234025 0.204773,-0.390042 0.624068,-0.390042 0.448549,0 0.877595,0.146266 1.277389,0.399793 l 0.565561,-0.867844 C 17.604773,15.836195 16.93195,15.592418 16.181119,15.592418 Z" - style="stroke-width:0.529163px" - id="path857" /> - <path - d="m 21.280919,15.592418 c -1.550418,0 -2.535275,1.150625 -2.535275,2.798554 0,1.638178 0.975106,2.710795 2.564528,2.710795 0.711828,0 1.267638,-0.234026 1.74544,-0.614317 l -0.672823,-0.955604 c -0.37054,0.234026 -0.624068,0.351038 -0.994608,0.351038 -0.614317,0 -1.023861,-0.351038 -1.023861,-1.501663 0,-1.160376 0.380291,-1.608925 1.043363,-1.608925 0.351038,0 0.653321,0.117013 0.984857,0.370541 l 0.663072,-0.9166 c -0.497304,-0.419295 -1.053114,-0.633819 -1.774693,-0.633819 z" - style="stroke-width:0.529163px" - id="path859" /> - </g> - <g - id="g1542" - transform="matrix(2,0,0,2,-0.41134438,3.175)" - style="stroke-width:1"> - <path - d="M 4.9596016,-1.0195918 C 5.3675734,1.8116029 6.8867822,3.5302649 9.983482,3.6714361 7.0655129,4.7878541 4.0581782,2.1638833 4.9596016,-1.0195918" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path943" /> - <path - d="m 3.3406657,-0.52095963 c 0.034969,-0.00777 0.038854,0.015542 0.041445,0.041445 C 3.4805417,1.3259222 4.2420891,2.6948942 5.2510098,3.6312866 6.2599306,4.5676787 7.6146558,5.3253406 9.525,5.2916667 5.9477993,6.7163303 2.1879835,3.2932527 3.3393705,-0.52095963" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path945" /> - </g> - </g> - </g> - <text - xml:space="preserve" - transform="matrix(0.26458333,0,0,0.26458333,-45.077003,-6.6039377)" - id="text4811" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:15px;font-family:'Fira Mono', 'Roboto Mono', monospace;-inkscape-font-specification:'Fira Mono, Roboto Mono, monospace, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;white-space:pre;shape-inside:url(#rect4813);fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="-248.88142" - y="0"><tspan - x="180" - y="10.85" - id="tspan2171">[MikroTik] ❌ Health warning: psu1-state -</tspan><tspan - x="180" - y="25.85" - id="tspan2173"> -</tspan><tspan - x="180" - y="40.85" - id="tspan2175">The power supply unit 'psu1-state' on MikroTik failed!</tspan></text> - </g> -</svg> diff --git a/doc/check-health.d/notification-04-ram-utilization-ok.avif b/doc/check-health.d/notification-04-ram-utilization-ok.avif Binary files differnew file mode 100644 index 0000000..d995b9a --- /dev/null +++ b/doc/check-health.d/notification-04-ram-utilization-ok.avif diff --git a/doc/check-health.d/notification-05-psu-ok.svg b/doc/check-health.d/notification-05-psu-ok.svg deleted file mode 100644 index aae56c9..0000000 --- a/doc/check-health.d/notification-05-psu-ok.svg +++ /dev/null @@ -1,164 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - width="533.77954" - height="83.779518" - viewBox="0 0 141.22918 22.166659" - version="1.1" - id="svg8" - inkscape:version="1.1 (c4e8f9ed74, 2021-05-24)" - sodipodi:docname="check-health-psu-ok.svg" - inkscape:export-filename="logo.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <defs - id="defs2"> - <rect - x="180" - y="0" - width="658.20044" - height="397.81946" - id="rect4813" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.52" - inkscape:cx="155.59211" - inkscape:cy="90.789474" - inkscape:document-units="px" - inkscape:current-layer="layer1" - inkscape:document-rotation="0" - showgrid="true" - units="px" - inkscape:window-width="1920" - inkscape:window-height="1047" - inkscape:window-x="0" - inkscape:window-y="33" - inkscape:window-maximized="1" - inkscape:pagecheckerboard="0" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0"> - <inkscape:grid - type="xygrid" - id="grid833" - originx="16.37501" - originy="11.083327" /> - </sodipodi:namedview> - <metadata - id="metadata5"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(16.375001,11.083333)"> - <rect - style="fill:#e6e6e6;stroke:#6c5d53;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="rect857" - width="140.22916" - height="21.166662" - x="-15.875001" - y="-10.583333" - rx="1.7528646" /> - <g - id="g884" - transform="matrix(0.5,0,0,0.5,-12.40625,-7.1145834)" - style="stroke-width:2"> - <path - sodipodi:type="star" - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264584;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path899" - sodipodi:sides="4" - sodipodi:cx="12.700001" - sodipodi:cy="12.700001" - sodipodi:r1="14.81729" - sodipodi:r2="10.477405" - sodipodi:arg1="0.78539816" - sodipodi:arg2="1.5707963" - inkscape:flatsided="true" - inkscape:rounded="0.2" - inkscape:randomized="0" - d="m 23.177407,23.177407 c -2.963458,2.963458 -17.9913546,2.963458 -20.9548127,0 -2.96345803,-2.963458 -2.96345808,-17.9913546 0,-20.9548127 2.963458,-2.96345803 17.9913547,-2.96345808 20.9548127,0 2.963458,2.963458 2.963458,17.9913547 0,20.9548127 z" /> - <g - id="g871" - style="stroke-width:2"> - <g - aria-label="#!rsc" - id="text837"> - <path - d="M 7.483197,16.645533 V 15.621671 H 6.9371377 l 0.165768,-1.277388 H 5.8255169 l -0.165768,1.277388 h -0.975106 l 0.165768,-1.277388 H 3.5730221 l -0.165768,1.277388 H 2.7051778 v 1.023862 H 3.2707393 L 3.0269628,18.517736 H 2.3443886 v 1.023861 H 2.890448 L 2.7051778,20.935999 H 3.9825666 L 4.1678368,19.541597 H 5.1429427 L 4.9576726,20.935999 H 6.2350614 L 6.4203315,19.541597 H 7.1224078 V 18.517736 H 6.5568464 l 0.2437764,-1.872203 z m -2.2037394,1.872203 h -0.975106 l 0.2437765,-1.872203 h 0.975106 z" - style="stroke-width:0.529163px" - id="path851" /> - <path - d="m 9.6186715,14.178515 h -1.638178 l 0.1950212,4.270964 h 1.2481356 z m -0.819089,5.15831 c -0.487553,0 -0.8775954,0.399794 -0.8775954,0.877596 0,0.487552 0.3900424,0.887346 0.8775954,0.887346 0.497304,0 0.8873464,-0.399794 0.8873464,-0.887346 0,-0.477802 -0.3900424,-0.877596 -0.8873464,-0.877596 z" - style="stroke-width:0.529163px" - id="path853" /> - <path - d="m 13.372827,15.61192 c -0.594815,0 -1.10187,0.429047 -1.335895,1.150625 l -0.136515,-1.004359 h -1.335895 v 5.177813 h 1.540667 v -2.603533 c 0.175519,-0.770334 0.438798,-1.228633 1.072617,-1.228633 0.165768,0 0.302283,0.02925 0.468051,0.06826 l 0.243776,-1.491912 c -0.175519,-0.04875 -0.321785,-0.06826 -0.516806,-0.06826 z" - style="stroke-width:0.529163px" - id="path855" /> - <path - d="m 16.181119,15.592418 c -1.306642,0 -2.11598,0.692326 -2.11598,1.579672 0,0.799587 0.507055,1.326144 1.530916,1.618676 0.936102,0.263278 1.092119,0.37054 1.092119,0.721578 0,0.312034 -0.282781,0.487553 -0.750832,0.487553 -0.507055,0 -0.984857,-0.204772 -1.374899,-0.507055 l -0.750832,0.838591 c 0.507055,0.4583 1.267638,0.770334 2.164736,0.770334 1.287139,0 2.30125,-0.633819 2.30125,-1.706435 0,-0.926351 -0.575313,-1.355398 -1.599174,-1.64793 -0.926351,-0.273029 -1.062866,-0.390042 -1.062866,-0.663072 0,-0.234025 0.204773,-0.390042 0.624068,-0.390042 0.448549,0 0.877595,0.146266 1.277389,0.399793 l 0.565561,-0.867844 C 17.604773,15.836195 16.93195,15.592418 16.181119,15.592418 Z" - style="stroke-width:0.529163px" - id="path857" /> - <path - d="m 21.280919,15.592418 c -1.550418,0 -2.535275,1.150625 -2.535275,2.798554 0,1.638178 0.975106,2.710795 2.564528,2.710795 0.711828,0 1.267638,-0.234026 1.74544,-0.614317 l -0.672823,-0.955604 c -0.37054,0.234026 -0.624068,0.351038 -0.994608,0.351038 -0.614317,0 -1.023861,-0.351038 -1.023861,-1.501663 0,-1.160376 0.380291,-1.608925 1.043363,-1.608925 0.351038,0 0.653321,0.117013 0.984857,0.370541 l 0.663072,-0.9166 c -0.497304,-0.419295 -1.053114,-0.633819 -1.774693,-0.633819 z" - style="stroke-width:0.529163px" - id="path859" /> - </g> - <g - id="g1542" - transform="matrix(2,0,0,2,-0.41134438,3.175)" - style="stroke-width:1"> - <path - d="M 4.9596016,-1.0195918 C 5.3675734,1.8116029 6.8867822,3.5302649 9.983482,3.6714361 7.0655129,4.7878541 4.0581782,2.1638833 4.9596016,-1.0195918" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path943" /> - <path - d="m 3.3406657,-0.52095963 c 0.034969,-0.00777 0.038854,0.015542 0.041445,0.041445 C 3.4805417,1.3259222 4.2420891,2.6948942 5.2510098,3.6312866 6.2599306,4.5676787 7.6146558,5.3253406 9.525,5.2916667 5.9477993,6.7163303 2.1879835,3.2932527 3.3393705,-0.52095963" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path945" /> - </g> - </g> - </g> - <text - xml:space="preserve" - transform="matrix(0.26458333,0,0,0.26458333,-45.077002,-6.6039376)" - id="text4811" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:15px;font-family:'Fira Mono', 'Roboto Mono', monospace;-inkscape-font-specification:'Fira Mono, Roboto Mono, monospace, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;white-space:pre;shape-inside:url(#rect4813);fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="-248.88142" - y="0"><tspan - x="180" - y="10.85" - id="tspan13739">[MikroTik] ✅ Health recovery: psu1-state -</tspan><tspan - x="180" - y="25.85" - id="tspan13741"> -</tspan><tspan - x="180" - y="40.85" - id="tspan13743">The power supply unit 'psu1-state' on MikroTik recovered!</tspan></text> - </g> -</svg> diff --git a/doc/check-health.d/notification-05-voltage.avif b/doc/check-health.d/notification-05-voltage.avif Binary files differnew file mode 100644 index 0000000..17a385b --- /dev/null +++ b/doc/check-health.d/notification-05-voltage.avif diff --git a/doc/check-health.d/notification-06-temperature-high.avif b/doc/check-health.d/notification-06-temperature-high.avif Binary files differnew file mode 100644 index 0000000..60d3802 --- /dev/null +++ b/doc/check-health.d/notification-06-temperature-high.avif diff --git a/doc/check-health.d/notification-07-temperature-ok.avif b/doc/check-health.d/notification-07-temperature-ok.avif Binary files differnew file mode 100644 index 0000000..4afed02 --- /dev/null +++ b/doc/check-health.d/notification-07-temperature-ok.avif diff --git a/doc/check-health.d/notification-08-psu-fail.avif b/doc/check-health.d/notification-08-psu-fail.avif Binary files differnew file mode 100644 index 0000000..ad049ac --- /dev/null +++ b/doc/check-health.d/notification-08-psu-fail.avif diff --git a/doc/check-health.d/notification-09-psu-ok.avif b/doc/check-health.d/notification-09-psu-ok.avif Binary files differnew file mode 100644 index 0000000..26f5a74 --- /dev/null +++ b/doc/check-health.d/notification-09-psu-ok.avif diff --git a/doc/check-health.md b/doc/check-health.md index 52efa4c..f94a0bf 100644 --- a/doc/check-health.md +++ b/doc/check-health.md @@ -1,7 +1,14 @@ Notify about health state ========================= -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -12,32 +19,46 @@ Description This script is run from scheduler periodically, sending notification on health related events: -* voltage jumps up or down more than configured threshold or drops below limit +* high CPU utilization +* high RAM utilization (low available RAM) +* voltage jumps up or down more than configured threshold +* voltage drops below hard lower limit * power supply failed or recovered * temperature is above or below threshold Note that bad initial state will not trigger an event. -Only sensors available in hardware can be checked. See what your -hardware supports: +Monitoring CPU and RAM utilization (available processing and memory +resources) works on all devices. Other than that only sensors available +in hardware can be checked. See what your hardware supports: /system/health/print; ### Sample notifications +#### CPU utilization + +![check-health notification cpu utilization high](check-health.d/notification-01-cpu-utilization-high.avif) +![check-health notification cpu utilization ok](check-health.d/notification-02-cpu-utilization-ok.avif) + +#### RAM utilization (low available RAM) + +![check-health notification ram utilization high](check-health.d/notification-03-ram-utilization-high.avif) +![check-health notification ram utilization ok](check-health.d/notification-04-ram-utilization-ok.avif) + #### Voltage -![check-health notification voltage](check-health.d/notification-01-voltage.svg) +![check-health notification voltage](check-health.d/notification-05-voltage.avif) #### Temperature -![check-health notification](check-health.d/notification-02-temperature-high.svg) -![check-health notification](check-health.d/notification-03-temperature-ok.svg) +![check-health notification temperature high](check-health.d/notification-06-temperature-high.avif) +![check-health notification temperature ok](check-health.d/notification-07-temperature-ok.avif) #### PSU state -![check-health notification](check-health.d/notification-04-psu-fail.svg) -![check-health notification](check-health.d/notification-05-psu-ok.svg) +![check-health notification psu fail](check-health.d/notification-08-psu-fail.avif) +![check-health notification psu ok](check-health.d/notification-09-psu-ok.avif) Requirements and installation ----------------------------- @@ -45,7 +66,11 @@ Requirements and installation Just install the script and create a scheduler: $ScriptInstallUpdate check-health; - /system/scheduler/add interval=1m name=check-health on-event="/system/script/run check-health;" start-time=startup; + /system/scheduler/add interval=53s name=check-health on-event="/system/script/run check-health;" start-time=startup; + +> ℹ️ **Info**: Running lots of scripts simultaneously can tamper the +> precision of cpu utilization, escpecially on devices with limited +> resources. Thus an unusual interval is used here. Configuration ------------- @@ -56,10 +81,16 @@ The configuration goes to `global-config-overlay`, these are the parameters: * `CheckHealthVoltageLow`: value (in volt*10) giving a hard lower limit * `CheckHealthVoltagePercent`: percentage value to trigger voltage jumps -Also notification settings are required for e-mail, -[matrix](mod/notification-matrix.md) and/or +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + +Also notification settings are required for +[e-mail](mod/notification-email.md), +[matrix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or [telegram](mod/notification-telegram.md). --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/check-lte-firmware-upgrade.d/notification.avif b/doc/check-lte-firmware-upgrade.d/notification.avif Binary files differnew file mode 100644 index 0000000..c440da5 --- /dev/null +++ b/doc/check-lte-firmware-upgrade.d/notification.avif diff --git a/doc/check-lte-firmware-upgrade.d/notification.svg b/doc/check-lte-firmware-upgrade.d/notification.svg deleted file mode 100644 index 70aad88..0000000 --- a/doc/check-lte-firmware-upgrade.d/notification.svg +++ /dev/null @@ -1,184 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - width="483.77957" - height="153.77951" - viewBox="0 0 128.00002 40.687487" - version="1.1" - id="svg8" - inkscape:version="1.1 (c4e8f9ed74, 2021-05-24)" - sodipodi:docname="check-lte-firmware-upgrade.svg" - inkscape:export-filename="logo.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <defs - id="defs2"> - <rect - x="180" - y="0" - width="658.20044" - height="397.81946" - id="rect4813" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.52" - inkscape:cx="105.59211" - inkscape:cy="90.789474" - inkscape:document-units="px" - inkscape:current-layer="layer1" - inkscape:document-rotation="0" - showgrid="true" - units="px" - inkscape:window-width="1920" - inkscape:window-height="1047" - inkscape:window-x="0" - inkscape:window-y="33" - inkscape:window-maximized="1" - inkscape:pagecheckerboard="0" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0"> - <inkscape:grid - type="xygrid" - id="grid833" - originx="16.375008" - originy="11.083327" /> - </sodipodi:namedview> - <metadata - id="metadata5"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(16.375001,11.083332)"> - <rect - style="fill:#e6e6e6;stroke:#6c5d53;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="rect857" - width="127" - height="39.687492" - x="-15.875001" - y="-10.583332" - rx="1.5875" /> - <g - id="g884" - transform="matrix(0.5,0,0,0.5,-12.40625,-7.1145834)" - style="stroke-width:2"> - <path - sodipodi:type="star" - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264584;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path899" - sodipodi:sides="4" - sodipodi:cx="12.700001" - sodipodi:cy="12.700001" - sodipodi:r1="14.81729" - sodipodi:r2="10.477405" - sodipodi:arg1="0.78539816" - sodipodi:arg2="1.5707963" - inkscape:flatsided="true" - inkscape:rounded="0.2" - inkscape:randomized="0" - d="m 23.177407,23.177407 c -2.963458,2.963458 -17.9913546,2.963458 -20.9548127,0 -2.96345803,-2.963458 -2.96345808,-17.9913546 0,-20.9548127 2.963458,-2.96345803 17.9913547,-2.96345808 20.9548127,0 2.963458,2.963458 2.963458,17.9913547 0,20.9548127 z" /> - <g - id="g871" - style="stroke-width:2"> - <g - aria-label="#!rsc" - id="text837"> - <path - d="M 7.483197,16.645533 V 15.621671 H 6.9371377 l 0.165768,-1.277388 H 5.8255169 l -0.165768,1.277388 h -0.975106 l 0.165768,-1.277388 H 3.5730221 l -0.165768,1.277388 H 2.7051778 v 1.023862 H 3.2707393 L 3.0269628,18.517736 H 2.3443886 v 1.023861 H 2.890448 L 2.7051778,20.935999 H 3.9825666 L 4.1678368,19.541597 H 5.1429427 L 4.9576726,20.935999 H 6.2350614 L 6.4203315,19.541597 H 7.1224078 V 18.517736 H 6.5568464 l 0.2437764,-1.872203 z m -2.2037394,1.872203 h -0.975106 l 0.2437765,-1.872203 h 0.975106 z" - style="stroke-width:0.529163px" - id="path851" /> - <path - d="m 9.6186715,14.178515 h -1.638178 l 0.1950212,4.270964 h 1.2481356 z m -0.819089,5.15831 c -0.487553,0 -0.8775954,0.399794 -0.8775954,0.877596 0,0.487552 0.3900424,0.887346 0.8775954,0.887346 0.497304,0 0.8873464,-0.399794 0.8873464,-0.887346 0,-0.477802 -0.3900424,-0.877596 -0.8873464,-0.877596 z" - style="stroke-width:0.529163px" - id="path853" /> - <path - d="m 13.372827,15.61192 c -0.594815,0 -1.10187,0.429047 -1.335895,1.150625 l -0.136515,-1.004359 h -1.335895 v 5.177813 h 1.540667 v -2.603533 c 0.175519,-0.770334 0.438798,-1.228633 1.072617,-1.228633 0.165768,0 0.302283,0.02925 0.468051,0.06826 l 0.243776,-1.491912 c -0.175519,-0.04875 -0.321785,-0.06826 -0.516806,-0.06826 z" - style="stroke-width:0.529163px" - id="path855" /> - <path - d="m 16.181119,15.592418 c -1.306642,0 -2.11598,0.692326 -2.11598,1.579672 0,0.799587 0.507055,1.326144 1.530916,1.618676 0.936102,0.263278 1.092119,0.37054 1.092119,0.721578 0,0.312034 -0.282781,0.487553 -0.750832,0.487553 -0.507055,0 -0.984857,-0.204772 -1.374899,-0.507055 l -0.750832,0.838591 c 0.507055,0.4583 1.267638,0.770334 2.164736,0.770334 1.287139,0 2.30125,-0.633819 2.30125,-1.706435 0,-0.926351 -0.575313,-1.355398 -1.599174,-1.64793 -0.926351,-0.273029 -1.062866,-0.390042 -1.062866,-0.663072 0,-0.234025 0.204773,-0.390042 0.624068,-0.390042 0.448549,0 0.877595,0.146266 1.277389,0.399793 l 0.565561,-0.867844 C 17.604773,15.836195 16.93195,15.592418 16.181119,15.592418 Z" - style="stroke-width:0.529163px" - id="path857" /> - <path - d="m 21.280919,15.592418 c -1.550418,0 -2.535275,1.150625 -2.535275,2.798554 0,1.638178 0.975106,2.710795 2.564528,2.710795 0.711828,0 1.267638,-0.234026 1.74544,-0.614317 l -0.672823,-0.955604 c -0.37054,0.234026 -0.624068,0.351038 -0.994608,0.351038 -0.614317,0 -1.023861,-0.351038 -1.023861,-1.501663 0,-1.160376 0.380291,-1.608925 1.043363,-1.608925 0.351038,0 0.653321,0.117013 0.984857,0.370541 l 0.663072,-0.9166 c -0.497304,-0.419295 -1.053114,-0.633819 -1.774693,-0.633819 z" - style="stroke-width:0.529163px" - id="path859" /> - </g> - <g - id="g1542" - transform="matrix(2,0,0,2,-0.41134438,3.175)" - style="stroke-width:1"> - <path - d="M 4.9596016,-1.0195918 C 5.3675734,1.8116029 6.8867822,3.5302649 9.983482,3.6714361 7.0655129,4.7878541 4.0581782,2.1638833 4.9596016,-1.0195918" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path943" /> - <path - d="m 3.3406657,-0.52095963 c 0.034969,-0.00777 0.038854,0.015542 0.041445,0.041445 C 3.4805417,1.3259222 4.2420891,2.6948942 5.2510098,3.6312866 6.2599306,4.5676787 7.6146558,5.3253406 9.525,5.2916667 5.9477993,6.7163303 2.1879835,3.2932527 3.3393705,-0.52095963" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path945" /> - </g> - </g> - </g> - <text - xml:space="preserve" - transform="matrix(0.26458333,0,0,0.26458333,-45.013502,-6.6039365)" - id="text4811" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:15px;font-family:'Fira Mono', 'Roboto Mono', monospace;-inkscape-font-specification:'Fira Mono, Roboto Mono, monospace, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;white-space:pre;shape-inside:url(#rect4813);fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="-248.88142" - y="0"><tspan - x="180" - y="10.85" - id="tspan13600">[MikroTik] ✨ LTE firmware upgrade -</tspan><tspan - x="180" - y="25.85" - id="tspan13602"> -</tspan><tspan - x="180" - y="40.85" - id="tspan13604">A new firmware version R11e-LTE6_V027 is available -</tspan><tspan - x="180" - y="55.85" - id="tspan13606">for LTE interface lte on MikroTik. -</tspan><tspan - x="180" - y="70.85" - id="tspan13608"> -</tspan><tspan - x="180" - y="85.85" - id="tspan13610">Interface: MikroTik R11e-LTE6 -</tspan><tspan - x="180" - y="100.85" - id="tspan13612">Installed: R11e-LTE6_V025 -</tspan><tspan - x="180" - y="115.85" - id="tspan13614">Available: R11e-LTE6_V027</tspan></text> - </g> -</svg> diff --git a/doc/check-lte-firmware-upgrade.md b/doc/check-lte-firmware-upgrade.md index 6550734..59a62c7 100644 --- a/doc/check-lte-firmware-upgrade.md +++ b/doc/check-lte-firmware-upgrade.md @@ -1,7 +1,14 @@ Notify on LTE firmware upgrade ============================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -19,7 +26,7 @@ upgrades. Currently supported LTE hardware: ### Sample notification -![check-lte-firmware-upgrade notification](check-lte-firmware-upgrade.d/notification.svg) +![check-lte-firmware-upgrade notification](check-lte-firmware-upgrade.d/notification.avif) Requirements and installation ----------------------------- @@ -35,7 +42,8 @@ Just install the script: Configuration ------------- -Notification setting are required for e-mail, +Also notification settings are required for +[e-mail](mod/notification-email.md), [matrix](mod/notification-matrix.md) and/or [telegram](mod/notification-telegram.md). @@ -46,5 +54,5 @@ See also * [Install LTE firmware upgrade](unattended-lte-firmware-upgrade.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/check-routeros-update.d/notification.avif b/doc/check-routeros-update.d/notification.avif Binary files differnew file mode 100644 index 0000000..50317cf --- /dev/null +++ b/doc/check-routeros-update.d/notification.avif diff --git a/doc/check-routeros-update.d/notification.svg b/doc/check-routeros-update.d/notification.svg deleted file mode 100644 index 7a1ecba..0000000 --- a/doc/check-routeros-update.d/notification.svg +++ /dev/null @@ -1,230 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - width="523.77954" - height="253.77951" - viewBox="0 0 138.58334 67.145814" - version="1.1" - id="svg8" - inkscape:version="1.1 (c4e8f9ed74, 2021-05-24)" - sodipodi:docname="check-routeros-update.svg" - inkscape:export-filename="logo.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <defs - id="defs2"> - <rect - x="291.8898" - y="1031.8898" - width="80" - height="30" - id="rect51085" /> - <rect - x="61.889786" - y="251.88976" - width="540" - height="40.000004" - id="rect6582" /> - <rect - x="180" - y="0" - width="658.20044" - height="397.81946" - id="rect4813" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.52" - inkscape:cx="174.67105" - inkscape:cy="218.42105" - inkscape:document-units="px" - inkscape:current-layer="layer1" - inkscape:document-rotation="0" - showgrid="true" - units="px" - inkscape:window-width="1920" - inkscape:window-height="1047" - inkscape:window-x="0" - inkscape:window-y="33" - inkscape:window-maximized="1" - inkscape:pagecheckerboard="0" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0"> - <inkscape:grid - type="xygrid" - id="grid833" - originx="16.375008" - originy="11.083326" /> - </sodipodi:namedview> - <metadata - id="metadata5"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(16.375,11.083333)"> - <rect - style="fill:#e6e6e6;stroke:#6c5d53;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="rect857" - width="137.58333" - height="66.145821" - x="-15.875" - y="-10.583333" - rx="1.7197918" /> - <g - id="g884" - transform="matrix(0.5,0,0,0.5,-12.40625,-7.1145834)" - style="stroke-width:2"> - <path - sodipodi:type="star" - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264584;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path899" - sodipodi:sides="4" - sodipodi:cx="12.700001" - sodipodi:cy="12.700001" - sodipodi:r1="14.81729" - sodipodi:r2="10.477405" - sodipodi:arg1="0.78539816" - sodipodi:arg2="1.5707963" - inkscape:flatsided="true" - inkscape:rounded="0.2" - inkscape:randomized="0" - d="m 23.177407,23.177407 c -2.963458,2.963458 -17.9913546,2.963458 -20.9548127,0 -2.96345803,-2.963458 -2.96345808,-17.9913546 0,-20.9548127 2.963458,-2.96345803 17.9913547,-2.96345808 20.9548127,0 2.963458,2.963458 2.963458,17.9913547 0,20.9548127 z" /> - <g - id="g871" - style="stroke-width:2"> - <g - aria-label="#!rsc" - id="text837"> - <path - d="M 7.483197,16.645533 V 15.621671 H 6.9371377 l 0.165768,-1.277388 H 5.8255169 l -0.165768,1.277388 h -0.975106 l 0.165768,-1.277388 H 3.5730221 l -0.165768,1.277388 H 2.7051778 v 1.023862 H 3.2707393 L 3.0269628,18.517736 H 2.3443886 v 1.023861 H 2.890448 L 2.7051778,20.935999 H 3.9825666 L 4.1678368,19.541597 H 5.1429427 L 4.9576726,20.935999 H 6.2350614 L 6.4203315,19.541597 H 7.1224078 V 18.517736 H 6.5568464 l 0.2437764,-1.872203 z m -2.2037394,1.872203 h -0.975106 l 0.2437765,-1.872203 h 0.975106 z" - style="stroke-width:0.529163px" - id="path851" /> - <path - d="m 9.6186715,14.178515 h -1.638178 l 0.1950212,4.270964 h 1.2481356 z m -0.819089,5.15831 c -0.487553,0 -0.8775954,0.399794 -0.8775954,0.877596 0,0.487552 0.3900424,0.887346 0.8775954,0.887346 0.497304,0 0.8873464,-0.399794 0.8873464,-0.887346 0,-0.477802 -0.3900424,-0.877596 -0.8873464,-0.877596 z" - style="stroke-width:0.529163px" - id="path853" /> - <path - d="m 13.372827,15.61192 c -0.594815,0 -1.10187,0.429047 -1.335895,1.150625 l -0.136515,-1.004359 h -1.335895 v 5.177813 h 1.540667 v -2.603533 c 0.175519,-0.770334 0.438798,-1.228633 1.072617,-1.228633 0.165768,0 0.302283,0.02925 0.468051,0.06826 l 0.243776,-1.491912 c -0.175519,-0.04875 -0.321785,-0.06826 -0.516806,-0.06826 z" - style="stroke-width:0.529163px" - id="path855" /> - <path - d="m 16.181119,15.592418 c -1.306642,0 -2.11598,0.692326 -2.11598,1.579672 0,0.799587 0.507055,1.326144 1.530916,1.618676 0.936102,0.263278 1.092119,0.37054 1.092119,0.721578 0,0.312034 -0.282781,0.487553 -0.750832,0.487553 -0.507055,0 -0.984857,-0.204772 -1.374899,-0.507055 l -0.750832,0.838591 c 0.507055,0.4583 1.267638,0.770334 2.164736,0.770334 1.287139,0 2.30125,-0.633819 2.30125,-1.706435 0,-0.926351 -0.575313,-1.355398 -1.599174,-1.64793 -0.926351,-0.273029 -1.062866,-0.390042 -1.062866,-0.663072 0,-0.234025 0.204773,-0.390042 0.624068,-0.390042 0.448549,0 0.877595,0.146266 1.277389,0.399793 l 0.565561,-0.867844 C 17.604773,15.836195 16.93195,15.592418 16.181119,15.592418 Z" - style="stroke-width:0.529163px" - id="path857" /> - <path - d="m 21.280919,15.592418 c -1.550418,0 -2.535275,1.150625 -2.535275,2.798554 0,1.638178 0.975106,2.710795 2.564528,2.710795 0.711828,0 1.267638,-0.234026 1.74544,-0.614317 l -0.672823,-0.955604 c -0.37054,0.234026 -0.624068,0.351038 -0.994608,0.351038 -0.614317,0 -1.023861,-0.351038 -1.023861,-1.501663 0,-1.160376 0.380291,-1.608925 1.043363,-1.608925 0.351038,0 0.653321,0.117013 0.984857,0.370541 l 0.663072,-0.9166 c -0.497304,-0.419295 -1.053114,-0.633819 -1.774693,-0.633819 z" - style="stroke-width:0.529163px" - id="path859" /> - </g> - <g - id="g1542" - transform="matrix(2,0,0,2,-0.41134438,3.175)" - style="stroke-width:1"> - <path - d="M 4.9596016,-1.0195918 C 5.3675734,1.8116029 6.8867822,3.5302649 9.983482,3.6714361 7.0655129,4.7878541 4.0581782,2.1638833 4.9596016,-1.0195918" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path943" /> - <path - d="m 3.3406657,-0.52095963 c 0.034969,-0.00777 0.038854,0.015542 0.041445,0.041445 C 3.4805417,1.3259222 4.2420891,2.6948942 5.2510098,3.6312866 6.2599306,4.5676787 7.6146558,5.3253406 9.525,5.2916667 5.9477993,6.7163303 2.1879835,3.2932527 3.3393705,-0.52095963" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path945" /> - </g> - </g> - </g> - <text - xml:space="preserve" - transform="matrix(0.26458333,0,0,0.26458333,-44.950001,-6.6039376)" - id="text4811" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:15px;font-family:'Fira Mono', 'Roboto Mono', monospace;-inkscape-font-specification:'Fira Mono, Roboto Mono, monospace, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;white-space:pre;shape-inside:url(#rect4813);fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="-248.88142" - y="0"><tspan - x="180" - y="10.85" - id="tspan13541">[MikroTik] ✨ RouterOS update -</tspan><tspan - x="180" - y="25.85" - id="tspan13543"> -</tspan><tspan - x="180" - y="40.85" - id="tspan13545">A new RouterOS version 7.1.3 is available for MikroTik. -</tspan><tspan - x="180" - y="55.85" - id="tspan13547"> -</tspan><tspan - x="180" - y="70.85" - id="tspan13549">Hostname: MikroTik -</tspan><tspan - x="180" - y="85.85" - id="tspan13551">Board name: CHR -</tspan><tspan - x="180" - y="100.85" - id="tspan13553">Architecture: x86_64 -</tspan><tspan - x="180" - y="115.85" - id="tspan13555">RouterOS: -</tspan><tspan - x="180" - y="130.85" - id="tspan13557"> Channel: stable -</tspan><tspan - x="180" - y="145.85" - id="tspan13559"> Installed: 7.1.2 -</tspan><tspan - x="180" - y="160.85" - id="tspan13561"> Available: 7.1.3 -</tspan><tspan - x="180" - y="175.85" - id="tspan13563">RouterOS-Scripts: -</tspan><tspan - x="180" - y="190.85" - id="tspan13565"> Version: 83</tspan></text> - <text - xml:space="preserve" - id="text6580" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.175px;line-height:3.96875px;font-family:sans-serif;-inkscape-font-specification:sans-serif;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;white-space:pre;shape-inside:url(#rect6582);fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="0" - y="0" - transform="translate(-59.247377,-209.40811)"><tspan - x="61.890625" - y="254.76135" - id="tspan13567"> -</tspan><tspan - x="61.890625" - y="258.7301" - id="tspan13569">🔗 https://mikrotik.com/download/changelogs/stable-release-tree</tspan></text> - </g> -</svg> diff --git a/doc/check-routeros-update.md b/doc/check-routeros-update.md index f43cec9..f9d485c 100644 --- a/doc/check-routeros-update.md +++ b/doc/check-routeros-update.md @@ -1,7 +1,14 @@ Notify on RouterOS update ========================= -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -30,7 +37,7 @@ automatically is supported. ### Sample notification -![check-routeros-update notification](check-routeros-update.d/notification.svg) +![check-routeros-update notification](check-routeros-update.d/notification.avif) Requirements and installation ----------------------------- @@ -46,18 +53,28 @@ And add a scheduler for automatic update notification: Configuration ------------- -Configuration is required only if you want to control update process with -safe versions from a web server. The configuration goes to -`global-config-overlay`, this is the parameter: - -* `SafeUpdateNeighbor`: install updates automatically if seen in neighbor list -* `SafeUpdateOnCap`: check for updates even if device is managed by CAPsMAN -* `SafeUpdatePatch`: install patch updates automatically -* `SafeUpdateUrl`: url to check for safe update, the channel (`long-term`, -`stable` or `testing`) is appended - -Also notification settings are required for e-mail, -[matrix](mod/notification-matrix.md) and/or +No extra configuration is required to receive notifications. Several +mechanisms are availalbe to enable automatic installation of updates. +The configuration goes to `global-config-overlay`, these are the parameters: + +* `SafeUpdateNeighbor`: install updates automatically if at least one other + device is seen in neighbor list with new version +* `SafeUpdateNeighborIdentity`: regular expression to match identity for + trusted devices, leave empty to match all +* `SafeUpdatePatch`: install patch updates (where just last digit changes) + automatically +* `SafeUpdateUrl`: url on webserver to check for safe update, the channel + (`long-term`, `stable` or `testing`) is appended +* `SafeUpdateAll`: install **all** updates automatically + +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + +Also notification settings are required for +[e-mail](mod/notification-email.md), +[matrix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or [telegram](mod/notification-telegram.md). Usage and invocation @@ -71,6 +88,14 @@ If an update is found you can install it right away. Installing script [packages-update](packages-update.md) gives extra options. +Tips & Tricks +------------- + +The script checks for full connectivity before acting, so scheduling at +startup is perfectly valid: + + /system/scheduler/add name=check-routeros-update@startup on-event="/system/script/run check-routeros-update;" start-time=startup; + See also -------- @@ -78,5 +103,5 @@ See also * [Manage system update](packages-update.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/collect-wireless-mac.d/notification.avif b/doc/collect-wireless-mac.d/notification.avif Binary files differnew file mode 100644 index 0000000..a2833f0 --- /dev/null +++ b/doc/collect-wireless-mac.d/notification.avif diff --git a/doc/collect-wireless-mac.d/notification.svg b/doc/collect-wireless-mac.d/notification.svg deleted file mode 100644 index fe1d20f..0000000 --- a/doc/collect-wireless-mac.d/notification.svg +++ /dev/null @@ -1,208 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - width="493.77954" - height="243.77951" - viewBox="0 0 130.64584 64.499982" - version="1.1" - id="svg8" - inkscape:version="1.1 (c4e8f9ed74, 2021-05-24)" - sodipodi:docname="collect-wireless-mac.svg" - inkscape:export-filename="logo.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <defs - id="defs2"> - <rect - x="180" - y="0" - width="658.20044" - height="397.81946" - id="rect4813" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.52" - inkscape:cx="113.48684" - inkscape:cy="90.789474" - inkscape:document-units="px" - inkscape:current-layer="layer1" - inkscape:document-rotation="0" - showgrid="true" - units="px" - inkscape:window-width="1920" - inkscape:window-height="1047" - inkscape:window-x="0" - inkscape:window-y="33" - inkscape:window-maximized="1" - inkscape:pagecheckerboard="0" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0"> - <inkscape:grid - type="xygrid" - id="grid833" - originx="16.375008" - originy="11.083328" /> - </sodipodi:namedview> - <metadata - id="metadata5"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(16.375001,11.083333)"> - <rect - style="fill:#e6e6e6;stroke:#6c5d53;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="rect857" - width="129.64583" - height="63.499989" - x="-15.875001" - y="-10.583333" - rx="1.6205727" /> - <g - id="g884" - transform="matrix(0.5,0,0,0.5,-12.40625,-7.1145834)" - style="stroke-width:2"> - <path - sodipodi:type="star" - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264584;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path899" - sodipodi:sides="4" - sodipodi:cx="12.700001" - sodipodi:cy="12.700001" - sodipodi:r1="14.81729" - sodipodi:r2="10.477405" - sodipodi:arg1="0.78539816" - sodipodi:arg2="1.5707963" - inkscape:flatsided="true" - inkscape:rounded="0.2" - inkscape:randomized="0" - d="m 23.177407,23.177407 c -2.963458,2.963458 -17.9913546,2.963458 -20.9548127,0 -2.96345803,-2.963458 -2.96345808,-17.9913546 0,-20.9548127 2.963458,-2.96345803 17.9913547,-2.96345808 20.9548127,0 2.963458,2.963458 2.963458,17.9913547 0,20.9548127 z" /> - <g - id="g871" - style="stroke-width:2"> - <g - aria-label="#!rsc" - id="text837"> - <path - d="M 7.483197,16.645533 V 15.621671 H 6.9371377 l 0.165768,-1.277388 H 5.8255169 l -0.165768,1.277388 h -0.975106 l 0.165768,-1.277388 H 3.5730221 l -0.165768,1.277388 H 2.7051778 v 1.023862 H 3.2707393 L 3.0269628,18.517736 H 2.3443886 v 1.023861 H 2.890448 L 2.7051778,20.935999 H 3.9825666 L 4.1678368,19.541597 H 5.1429427 L 4.9576726,20.935999 H 6.2350614 L 6.4203315,19.541597 H 7.1224078 V 18.517736 H 6.5568464 l 0.2437764,-1.872203 z m -2.2037394,1.872203 h -0.975106 l 0.2437765,-1.872203 h 0.975106 z" - style="stroke-width:0.529163px" - id="path851" /> - <path - d="m 9.6186715,14.178515 h -1.638178 l 0.1950212,4.270964 h 1.2481356 z m -0.819089,5.15831 c -0.487553,0 -0.8775954,0.399794 -0.8775954,0.877596 0,0.487552 0.3900424,0.887346 0.8775954,0.887346 0.497304,0 0.8873464,-0.399794 0.8873464,-0.887346 0,-0.477802 -0.3900424,-0.877596 -0.8873464,-0.877596 z" - style="stroke-width:0.529163px" - id="path853" /> - <path - d="m 13.372827,15.61192 c -0.594815,0 -1.10187,0.429047 -1.335895,1.150625 l -0.136515,-1.004359 h -1.335895 v 5.177813 h 1.540667 v -2.603533 c 0.175519,-0.770334 0.438798,-1.228633 1.072617,-1.228633 0.165768,0 0.302283,0.02925 0.468051,0.06826 l 0.243776,-1.491912 c -0.175519,-0.04875 -0.321785,-0.06826 -0.516806,-0.06826 z" - style="stroke-width:0.529163px" - id="path855" /> - <path - d="m 16.181119,15.592418 c -1.306642,0 -2.11598,0.692326 -2.11598,1.579672 0,0.799587 0.507055,1.326144 1.530916,1.618676 0.936102,0.263278 1.092119,0.37054 1.092119,0.721578 0,0.312034 -0.282781,0.487553 -0.750832,0.487553 -0.507055,0 -0.984857,-0.204772 -1.374899,-0.507055 l -0.750832,0.838591 c 0.507055,0.4583 1.267638,0.770334 2.164736,0.770334 1.287139,0 2.30125,-0.633819 2.30125,-1.706435 0,-0.926351 -0.575313,-1.355398 -1.599174,-1.64793 -0.926351,-0.273029 -1.062866,-0.390042 -1.062866,-0.663072 0,-0.234025 0.204773,-0.390042 0.624068,-0.390042 0.448549,0 0.877595,0.146266 1.277389,0.399793 l 0.565561,-0.867844 C 17.604773,15.836195 16.93195,15.592418 16.181119,15.592418 Z" - style="stroke-width:0.529163px" - id="path857" /> - <path - d="m 21.280919,15.592418 c -1.550418,0 -2.535275,1.150625 -2.535275,2.798554 0,1.638178 0.975106,2.710795 2.564528,2.710795 0.711828,0 1.267638,-0.234026 1.74544,-0.614317 l -0.672823,-0.955604 c -0.37054,0.234026 -0.624068,0.351038 -0.994608,0.351038 -0.614317,0 -1.023861,-0.351038 -1.023861,-1.501663 0,-1.160376 0.380291,-1.608925 1.043363,-1.608925 0.351038,0 0.653321,0.117013 0.984857,0.370541 l 0.663072,-0.9166 c -0.497304,-0.419295 -1.053114,-0.633819 -1.774693,-0.633819 z" - style="stroke-width:0.529163px" - id="path859" /> - </g> - <g - id="g1542" - transform="matrix(2,0,0,2,-0.41134438,3.175)" - style="stroke-width:1"> - <path - d="M 4.9596016,-1.0195918 C 5.3675734,1.8116029 6.8867822,3.5302649 9.983482,3.6714361 7.0655129,4.7878541 4.0581782,2.1638833 4.9596016,-1.0195918" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path943" /> - <path - d="m 3.3406657,-0.52095963 c 0.034969,-0.00777 0.038854,0.015542 0.041445,0.041445 C 3.4805417,1.3259222 4.2420891,2.6948942 5.2510098,3.6312866 6.2599306,4.5676787 7.6146558,5.3253406 9.525,5.2916667 5.9477993,6.7163303 2.1879835,3.2932527 3.3393705,-0.52095963" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path945" /> - </g> - </g> - </g> - <text - xml:space="preserve" - transform="matrix(0.26458333,0,0,0.26458333,-45.013502,-6.6039376)" - id="text4811" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:15px;font-family:'Fira Mono', 'Roboto Mono', monospace;-inkscape-font-specification:'Fira Mono, Roboto Mono, monospace, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;white-space:pre;shape-inside:url(#rect4813);fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="-248.88142" - y="0"><tspan - x="180" - y="10.85" - id="tspan13404">[MikroTik] 📱 48:F1:7F:D0:E5:4E connected to Wifi -</tspan><tspan - x="180" - y="25.85" - id="tspan13406"> -</tspan><tspan - x="180" - y="40.85" - id="tspan13408">A device with unknown MAC address connected to Wifi -</tspan><tspan - x="180" - y="55.85" - id="tspan13410">on MikroTik. -</tspan><tspan - x="180" - y="70.85" - id="tspan13412"> -</tspan><tspan - x="180" - y="85.85" - id="tspan13414">Controller: MikroTik -</tspan><tspan - x="180" - y="100.85" - id="tspan13416">Interface: wl5-wifi -</tspan><tspan - x="180" - y="115.85" - id="tspan13418">SSID: Wifi -</tspan><tspan - x="180" - y="130.85" - id="tspan13420">MAC: 48:F1:7F:D0:E5:4E -</tspan><tspan - x="180" - y="145.85" - id="tspan13422">Vendor: Intel Corporate -</tspan><tspan - x="180" - y="160.85" - id="tspan13424">Hostname: host-523c8e0e -</tspan><tspan - x="180" - y="175.85" - id="tspan13426">Address: 192.168.20.254 -</tspan><tspan - x="180" - y="190.85" - id="tspan13428">DNS name: host-523c8e0e.dhcp.MikroTik.example.com -</tspan><tspan - x="180" - y="205.85" - id="tspan13430">Date: jun/15/2021 09:21:56</tspan></text> - </g> -</svg> diff --git a/doc/collect-wireless-mac.md b/doc/collect-wireless-mac.md index afdf73a..57032d8 100644 --- a/doc/collect-wireless-mac.md +++ b/doc/collect-wireless-mac.md @@ -1,7 +1,14 @@ Collect MAC addresses in wireless access list ============================================= -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -17,19 +24,24 @@ and modify it to your needs. ### Sample notification -![collect-wireless-mac notification](collect-wireless-mac.d/notification.svg) +![collect-wireless-mac notification](collect-wireless-mac.d/notification.avif) Requirements and installation ----------------------------- -Depending on whether you use CAPsMAN (`/caps-man`) or local wireless -interface (`/interface/wireless`) you need to install a different script. +Depending on whether you use `wifi` package (`/interface/wifi`), legacy +wifi with CAPsMAN (`/caps-man`) or local wireless interface +(`/interface/wireless`) you need to install a different script. + +For `wifi`: + + $ScriptInstallUpdate collect-wireless-mac.wifi; -For CAPsMAN: +For legacy CAPsMAN: $ScriptInstallUpdate collect-wireless-mac.capsman; -For local interface: +For legacy local interface: $ScriptInstallUpdate collect-wireless-mac.local; @@ -40,8 +52,10 @@ On first run a disabled access list entry acting as marker (with comment "`--- collected above ---`") is added. Move this entry to define where new entries are to be added. -Also notification settings are required for e-mail, -[matrix](mod/notification-matrix.md) and/or +Also notification settings are required for +[e-mail](mod/notification-email.md), +[matrix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or [telegram](mod/notification-telegram.md). Usage and invocation @@ -59,5 +73,5 @@ See also * [Run other scripts on DHCP lease](lease-script.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/daily-psk.d/notification.avif b/doc/daily-psk.d/notification.avif Binary files differnew file mode 100644 index 0000000..dd0b1b6 --- /dev/null +++ b/doc/daily-psk.d/notification.avif diff --git a/doc/daily-psk.d/notification.svg b/doc/daily-psk.d/notification.svg deleted file mode 100644 index 6c7d13a..0000000 --- a/doc/daily-psk.d/notification.svg +++ /dev/null @@ -1,204 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - width="443.77957" - height="213.77948" - viewBox="0 0 117.41669 56.562475" - version="1.1" - id="svg8" - inkscape:version="1.1 (c4e8f9ed74, 2021-05-24)" - sodipodi:docname="daily-psk.svg" - inkscape:export-filename="logo.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <defs - id="defs2"> - <rect - x="180" - y="0" - width="658.20044" - height="397.81946" - id="rect4813" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.5" - inkscape:cx="70.333333" - inkscape:cy="143.33333" - inkscape:document-units="px" - inkscape:current-layer="layer1" - inkscape:document-rotation="0" - showgrid="true" - units="px" - inkscape:window-width="1920" - inkscape:window-height="1047" - inkscape:window-x="0" - inkscape:window-y="33" - inkscape:window-maximized="1" - inkscape:pagecheckerboard="0" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0"> - <inkscape:grid - type="xygrid" - id="grid833" - originx="16.375011" - originy="11.083318" /> - </sodipodi:namedview> - <metadata - id="metadata5"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(16.374997,11.08333)"> - <rect - style="fill:#e6e6e6;stroke:#6c5d53;stroke-width:0.999995;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="rect857" - width="116.41667" - height="55.562489" - x="-15.875" - y="-10.583332" - rx="1.4552084" /> - <g - id="g884" - transform="matrix(0.5,0,0,0.5,-12.40625,-7.1145834)" - style="stroke-width:2"> - <path - sodipodi:type="star" - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264584;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path899" - sodipodi:sides="4" - sodipodi:cx="12.700001" - sodipodi:cy="12.700001" - sodipodi:r1="14.81729" - sodipodi:r2="10.477405" - sodipodi:arg1="0.78539816" - sodipodi:arg2="1.5707963" - inkscape:flatsided="true" - inkscape:rounded="0.2" - inkscape:randomized="0" - d="m 23.177407,23.177407 c -2.963458,2.963458 -17.9913546,2.963458 -20.9548127,0 -2.96345803,-2.963458 -2.96345808,-17.9913546 0,-20.9548127 2.963458,-2.96345803 17.9913547,-2.96345808 20.9548127,0 2.963458,2.963458 2.963458,17.9913547 0,20.9548127 z" /> - <g - id="g871" - style="stroke-width:2"> - <g - aria-label="#!rsc" - id="text837"> - <path - d="M 7.483197,16.645533 V 15.621671 H 6.9371377 l 0.165768,-1.277388 H 5.8255169 l -0.165768,1.277388 h -0.975106 l 0.165768,-1.277388 H 3.5730221 l -0.165768,1.277388 H 2.7051778 v 1.023862 H 3.2707393 L 3.0269628,18.517736 H 2.3443886 v 1.023861 H 2.890448 L 2.7051778,20.935999 H 3.9825666 L 4.1678368,19.541597 H 5.1429427 L 4.9576726,20.935999 H 6.2350614 L 6.4203315,19.541597 H 7.1224078 V 18.517736 H 6.5568464 l 0.2437764,-1.872203 z m -2.2037394,1.872203 h -0.975106 l 0.2437765,-1.872203 h 0.975106 z" - style="stroke-width:0.529163px" - id="path851" /> - <path - d="m 9.6186715,14.178515 h -1.638178 l 0.1950212,4.270964 h 1.2481356 z m -0.819089,5.15831 c -0.487553,0 -0.8775954,0.399794 -0.8775954,0.877596 0,0.487552 0.3900424,0.887346 0.8775954,0.887346 0.497304,0 0.8873464,-0.399794 0.8873464,-0.887346 0,-0.477802 -0.3900424,-0.877596 -0.8873464,-0.877596 z" - style="stroke-width:0.529163px" - id="path853" /> - <path - d="m 13.372827,15.61192 c -0.594815,0 -1.10187,0.429047 -1.335895,1.150625 l -0.136515,-1.004359 h -1.335895 v 5.177813 h 1.540667 v -2.603533 c 0.175519,-0.770334 0.438798,-1.228633 1.072617,-1.228633 0.165768,0 0.302283,0.02925 0.468051,0.06826 l 0.243776,-1.491912 c -0.175519,-0.04875 -0.321785,-0.06826 -0.516806,-0.06826 z" - style="stroke-width:0.529163px" - id="path855" /> - <path - d="m 16.181119,15.592418 c -1.306642,0 -2.11598,0.692326 -2.11598,1.579672 0,0.799587 0.507055,1.326144 1.530916,1.618676 0.936102,0.263278 1.092119,0.37054 1.092119,0.721578 0,0.312034 -0.282781,0.487553 -0.750832,0.487553 -0.507055,0 -0.984857,-0.204772 -1.374899,-0.507055 l -0.750832,0.838591 c 0.507055,0.4583 1.267638,0.770334 2.164736,0.770334 1.287139,0 2.30125,-0.633819 2.30125,-1.706435 0,-0.926351 -0.575313,-1.355398 -1.599174,-1.64793 -0.926351,-0.273029 -1.062866,-0.390042 -1.062866,-0.663072 0,-0.234025 0.204773,-0.390042 0.624068,-0.390042 0.448549,0 0.877595,0.146266 1.277389,0.399793 l 0.565561,-0.867844 C 17.604773,15.836195 16.93195,15.592418 16.181119,15.592418 Z" - style="stroke-width:0.529163px" - id="path857" /> - <path - d="m 21.280919,15.592418 c -1.550418,0 -2.535275,1.150625 -2.535275,2.798554 0,1.638178 0.975106,2.710795 2.564528,2.710795 0.711828,0 1.267638,-0.234026 1.74544,-0.614317 l -0.672823,-0.955604 c -0.37054,0.234026 -0.624068,0.351038 -0.994608,0.351038 -0.614317,0 -1.023861,-0.351038 -1.023861,-1.501663 0,-1.160376 0.380291,-1.608925 1.043363,-1.608925 0.351038,0 0.653321,0.117013 0.984857,0.370541 l 0.663072,-0.9166 c -0.497304,-0.419295 -1.053114,-0.633819 -1.774693,-0.633819 z" - style="stroke-width:0.529163px" - id="path859" /> - </g> - <g - id="g1542" - transform="matrix(2,0,0,2,-0.41134438,3.175)" - style="stroke-width:1"> - <path - d="M 4.9596016,-1.0195918 C 5.3675734,1.8116029 6.8867822,3.5302649 9.983482,3.6714361 7.0655129,4.7878541 4.0581782,2.1638833 4.9596016,-1.0195918" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path943" /> - <path - d="m 3.3406657,-0.52095963 c 0.034969,-0.00777 0.038854,0.015542 0.041445,0.041445 C 3.4805417,1.3259222 4.2420891,2.6948942 5.2510098,3.6312866 6.2599306,4.5676787 7.6146558,5.3253406 9.525,5.2916667 5.9477993,6.7163303 2.1879835,3.2932527 3.3393705,-0.52095963" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path945" /> - </g> - </g> - </g> - <text - xml:space="preserve" - transform="matrix(0.26458333,0,0,0.26458333,-45.0135,-6.6039355)" - id="text4811" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:15px;font-family:'Fira Mono', 'Roboto Mono', monospace;-inkscape-font-specification:'Fira Mono, Roboto Mono, monospace, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;white-space:pre;shape-inside:url(#rect4813);fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="-248.88142" - y="0"><tspan - x="180" - y="10.85" - id="tspan13351">[MikroTik] 📅 daily PSK Guest-Wifi -</tspan><tspan - x="180" - y="25.85" - id="tspan13353"> -</tspan><tspan - x="180" - y="40.85" - id="tspan13355">This is the daily PSK on MikroTik: -</tspan><tspan - x="180" - y="55.85" - id="tspan13357"> -</tspan><tspan - x="180" - y="70.85" - id="tspan13359">SSID: Guest-Wifi -</tspan><tspan - x="180" - y="85.85" - id="tspan13361">PSK: S3cr3tStr1ng -</tspan><tspan - x="180" - y="100.85" - id="tspan13363">Date: jun/17/2021 -</tspan><tspan - x="180" - y="115.85" - id="tspan13365"> -</tspan><tspan - x="180" - y="130.85" - id="tspan13367">A client device specific rule must not exist!</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:2.38125px;font-family:sans-serif;-inkscape-font-specification:sans-serif;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="2.6538308" - y="34.683964" - id="text8530"><tspan - sodipodi:role="line" - id="tspan25760" - x="2.6538308" - y="34.683964" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">🔗 https://www.eworm.de/cgi-bin/cqrlogo-wifi.cgi?</tspan><tspan - sodipodi:role="line" - id="tspan25762" - x="2.6538308" - y="39.528858" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.175px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">scale=8&level=1&ssid=Guest-Wifi&pass=S3cr3tStr1ng</tspan></text> - </g> -</svg> diff --git a/doc/daily-psk.md b/doc/daily-psk.md index e27c2c9..3894d52 100644 --- a/doc/daily-psk.md +++ b/doc/daily-psk.md @@ -1,7 +1,14 @@ Use wireless network with daily psk =================================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -14,28 +21,35 @@ passphrase to a pseudo-random string daily. ### Sample notification -![daily-psk notification](daily-psk.d/notification.svg) +![daily-psk notification](daily-psk.d/notification.avif) Requirements and installation ----------------------------- Just install this script. -Depending on whether you use CAPsMAN (`/caps-man`) or local wireless -interface (`/interface/wireless`) you need to install a different script. +Depending on whether you use `wifi` package (`/interface/wifi`), legacy +wifi with CAPsMAN (`/caps-man`) or local wireless interface +(`/interface/wireless`) you need to install a different script and add +schedulers to run the script: -For CAPsMAN: +For `wifi`: - $ScriptInstallUpdate daily-psk.capsman; + $ScriptInstallUpdate daily-psk.wifi; + /system/scheduler/add interval=1d name=daily-psk on-event="/system/script/run daily-psk.wifi;" start-time=03:00:00; + /system/scheduler/add name=daily-psk@startup on-event="/system/script/run daily-psk.wifi;" start-time=startup; -For local interface: +For legacy CAPsMAN: - $ScriptInstallUpdate daily-psk.local; + $ScriptInstallUpdate daily-psk.capsman; + /system/scheduler/add interval=1d name=daily-psk on-event="/system/script/run daily-psk.capsman;" start-time=03:00:00; + /system/scheduler/add name=daily-psk@startup on-event="/system/script/run daily-psk.capsman;" start-time=startup; -And add schedulers to run the script: +For legacy local interface: - /system/scheduler/add interval=1d name=daily-psk-nightly on-event="/system/script/run daily-psk.local;" start-date=may/23/2018 start-time=03:00:00; - /system/scheduler/add name=daily-psk-startup on-event="/system/script/run daily-psk.local;" start-time=startup; + $ScriptInstallUpdate daily-psk.local; + /system/scheduler/add interval=1d name=daily-psk on-event="/system/script/run daily-psk.local;" start-time=03:00:00; + /system/scheduler/add name=daily-psk@startup on-event="/system/script/run daily-psk.local;" start-time=startup; These will update the passphrase on boot and nightly at 3:00. @@ -47,14 +61,28 @@ The configuration goes to `global-config-overlay`, these are the parameters: * `DailyPskMatchComment`: pattern to match the wireless access list comment * `DailyPskSecrets`: an array with pseudo random strings -Then add an access list entry: +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + +Then add an access list entry. For `wifi`: + + /interface/wifi/access-list/add comment="Daily PSK" ssid-regexp="-guest\$" passphrase="ToBeChangedDaily"; + +For legacy CAPsMAN: + + /caps-man/access-list/add comment="Daily PSK" ssid-regexp="-guest\$" private-passphrase="ToBeChangedDaily"; + +For legacy local interface: /interface/wireless/access-list/add comment="Daily PSK" interface=wl-daily private-pre-shared-key="ToBeChangedDaily"; -Also notification settings are required for e-mail, -[matrix](mod/notification-matrix.md) and/or +Also notification settings are required for +[e-mail](mod/notification-email.md), +[trix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or [telegram](mod/notification-telegram.md). --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/dhcp-lease-comment.md b/doc/dhcp-lease-comment.md index bb9222e..f95b124 100644 --- a/doc/dhcp-lease-comment.md +++ b/doc/dhcp-lease-comment.md @@ -1,7 +1,14 @@ Comment DHCP leases with info from access list ============================================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -15,14 +22,19 @@ from wireless access list. Requirements and installation ----------------------------- -Depending on whether you use CAPsMAN (`/caps-man`) or local wireless -interface (`/interface/wireless`) you need to install a different script. +Depending on whether you use `wifi` package (`/interface/wifi`), legacy +wifi with CAPsMAN (`/caps-man`) or local wireless interface +(`/interface/wireless`) you need to install a different script. + +For `wifi`: + + $ScriptInstallUpdate dhcp-lease-comment.wifi; -For CAPsMAN: +For legacy CAPsMAN: $ScriptInstallUpdate dhcp-lease-comment.capsman; -For local interface: +For legacy local interface: $ScriptInstallUpdate dhcp-lease-comment.local; @@ -48,5 +60,5 @@ See also * [Run other scripts on DHCP lease](lease-script.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/dhcp-to-dns.md b/doc/dhcp-to-dns.md index bde7f12..13d5ef3 100644 --- a/doc/dhcp-to-dns.md +++ b/doc/dhcp-to-dns.md @@ -1,7 +1,14 @@ Create DNS records for DHCP leases ================================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -9,7 +16,9 @@ Create DNS records for DHCP leases Description ----------- -This script adds (and removes) dns records based on dhcp server leases. +This script adds (and updates & removes) dns records based on dhcp server +leases. An A record based on mac address is created for all bound lease, +additionally a CNAME record is created from host name if available. Requirements and installation ----------------------------- @@ -32,12 +41,44 @@ On first run a disabled static dns record acting as marker (with comment "`--- dhcp-to-dns above ---`") is added. Move this entry to define where new entries are to be added. -The configuration goes to `global-config-overlay`, these are the parameters: +The configuration goes to dhcp server's network definition. The domain is +used to form the dns name: + + /ip/dhcp-server/network/add address=10.0.0.0/24 domain=example.com; + +A bound lease for mac address `00:11:22:33:44:55` with ip address +`10.0.0.50` would result in an A record `00-11-22-33-44-55.example.com` +pointing to the given ip address. + +Additional options can be given from comment, to add an extra level in +dns name or define a different domain. + + /ip/dhcp-server/network/add address=10.0.0.0/24 domain=example.com comment="domain=another-domain.com, name-extra=dhcp"; + +This example would result in name `00-11-22-33-44-55.dhcp.another-domain.com` +for the same lease. + +If no domain is found in dhcp server's network definition a fallback from +`global-config-overlay` is used. This is the parameter: * `Domain`: the domain used for dns records -* `HostNameInZone`: whether or not to add the dhcp/dns server's hostname -* `PrefixInZone`: whether or not to add prefix `dhcp` -* `ServerNameInZone`: whether or not to add DHCP server name + +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + +### Host name from DHCP lease comment + +Overwriting the host name from dhcp lease comment is supported, just add +something like `hostname=new-hostname` in comment, and separate it by comma +from other information if required: + + /ip/dhcp-server/lease/add address=10.0.0.50 comment="my device, hostname=new-hostname" mac-address=00:11:22:33:44:55 server=dhcp; + +Note this information can be configured in wireless access list with +[dhcp-lease-comment](dhcp-lease-comment.md), though it comes with a delay +then due to script execution order. Decrease the scheduler interval to +reduce the effect. See also -------- @@ -48,5 +89,5 @@ See also * [Run other scripts on DHCP lease](lease-script.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/firmware-upgrade-reboot.md b/doc/firmware-upgrade-reboot.md index 0215ce9..bac17a7 100644 --- a/doc/firmware-upgrade-reboot.md +++ b/doc/firmware-upgrade-reboot.md @@ -1,7 +1,14 @@ Automatically upgrade firmware and reboot ========================================= -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -32,5 +39,5 @@ See also * [Manage system update](packages-update.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/fw-addr-lists.md b/doc/fw-addr-lists.md new file mode 100644 index 0000000..e9a8ff7 --- /dev/null +++ b/doc/fw-addr-lists.md @@ -0,0 +1,132 @@ +Download, import and update firewall address-lists +================================================== + +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) + +> ℹ️ **Info**: This script can not be used on its own but requires the base +> installation. See [main README](../README.md) for details. + +Description +----------- + +This script downloads, imports and updates firewall address-lists. Its main +purpose is to block attacking ip addresses, spam hosts, command-and-control +servers and similar malicious entities. The default configuration contains +lists from [abuse.ch](https://abuse.ch/), [dshield.org](https://dshield.org/) +and [blocklist.de](https://www.blocklist.de/), and +lists from [spamhaus.org](https://spamhaus.org/) are prepared. + +The address-lists are updated in place, so after initial import you will not +see situation when the lists are not populated. + +To mitigate man-in-the-middle attacks with altered lists the server's +certificate is checked. + +> ⚠️ **Warning**: The script does not limit the size of a list, but keep in +> mind that huge lists can exhaust your device's resources (RAM and CPU), +> and may take a long time to process. + +Requirements and installation +----------------------------- + +Just install the script: + + $ScriptInstallUpdate fw-addr-lists; + +And add two schedulers, first one for initial import after startup, second +one for subsequent updates: + + /system/scheduler/add name="fw-addr-lists@startup" start-time=startup on-event="/system/script/run fw-addr-lists;"; + /system/scheduler/add name="fw-addr-lists" start-time=startup interval=2h on-event="/system/script/run fw-addr-lists;"; + +> ℹ️ **Info**: Modify the interval to your needs, but it is recommended to +> use less than half of the configured timeout for expiration. + +Configuration +------------- + +The configuration goes to `global-config-overlay`, these are the parameters: + +* `FwAddrLists`: a list of firewall address-lists to download and import +* `FwAddrListTimeOut`: the timeout for expiration without renew + +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + +Naming a certificate for a list makes the script verify the server +certificate, so you should add that if possible. Some certificates are +available in my repository and downloaded automatically. Import it manually +(menu `/certificate/`) if missing. + +Create firewall rules to process the packets that are related to addresses +from address-lists. + +### IPv4 rules + +This rejects the packets from and to IPv4 addresses listed in +address-list `block`. + + /ip/firewall/filter/add chain=input src-address-list=block action=reject reject-with=icmp-admin-prohibited; + /ip/firewall/filter/add chain=forward src-address-list=block action=reject reject-with=icmp-admin-prohibited; + /ip/firewall/filter/add chain=forward dst-address-list=block action=reject reject-with=icmp-admin-prohibited; + /ip/firewall/filter/add chain=output dst-address-list=block action=reject reject-with=icmp-admin-prohibited; + +You may want to have an address-list to allow specific addresses, as prepared +with a list `allow`. In fact you can use any list name, just change the +default ones or add your own - matching in configuration and firewall rules. + + /ip/firewall/filter/add chain=input src-address-list=allow action=accept; + /ip/firewall/filter/add chain=forward src-address-list=allow action=accept; + /ip/firewall/filter/add chain=forward dst-address-list=allow action=accept; + /ip/firewall/filter/add chain=output dst-address-list=allow action=accept; + +Modify these for your needs, but **most important**: Move the rules up in +chains and make sure they actually take effect as expected! + +Alternatively handle the packets in firewall's raw section if you prefer: + + /ip/firewall/raw/add chain=prerouting src-address-list=block action=drop; + /ip/firewall/raw/add chain=prerouting dst-address-list=block action=drop; + /ip/firewall/raw/add chain=output dst-address-list=block action=drop; + +> ⚠️ **Warning**: Just again... The order of firewall rules is important. Make +> sure they actually take effect as expected! + +### IPv6 rules + +These are the same rules, but for IPv6. + +Reject packets in address-list `block`: + + /ipv6/firewall/filter/add chain=input src-address-list=block action=reject reject-with=icmp-admin-prohibited; + /ipv6/firewall/filter/add chain=forward src-address-list=block action=reject reject-with=icmp-admin-prohibited; + /ipv6/firewall/filter/add chain=forward dst-address-list=block action=reject reject-with=icmp-admin-prohibited; + /ipv6/firewall/filter/add chain=output dst-address-list=block action=reject reject-with=icmp-admin-prohibited; + +Allow packets in address-list `allow`: + + /ipv6/firewall/filter/add chain=input src-address-list=allow action=accept; + /ipv6/firewall/filter/add chain=forward src-address-list=allow action=accept; + /ipv6/firewall/filter/add chain=forward dst-address-list=allow action=accept; + /ipv6/firewall/filter/add chain=output dst-address-list=allow action=accept; + +Drop packets in firewall's raw section: + + /ipv6/firewall/raw/add chain=prerouting src-address-list=block action=drop; + /ipv6/firewall/raw/add chain=prerouting dst-address-list=block action=drop; + /ipv6/firewall/raw/add chain=output dst-address-list=block action=drop; + +> ⚠️ **Warning**: Just again... The order of firewall rules is important. Make +> sure they actually take effect as expected! + +--- +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/global-wait.md b/doc/global-wait.md index ac3e5cc..4b42717 100644 --- a/doc/global-wait.md +++ b/doc/global-wait.md @@ -1,7 +1,14 @@ Wait for global functions and modules ===================================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -36,5 +43,5 @@ See also * [Manage VLANs on bridge ports](mod/bridge-port-vlan.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/gps-track.md b/doc/gps-track.md index c7d28f6..7006fb3 100644 --- a/doc/gps-track.md +++ b/doc/gps-track.md @@ -1,7 +1,14 @@ Send GPS position to server =========================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -32,9 +39,13 @@ The configuration goes to `global-config-overlay`, the only parameter is: * `GpsTrackUrl`: the url to send json data to +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + The configured coordinate format (see `/system/gps`) defines the format sent to the server. --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/hotspot-to-wpa.md b/doc/hotspot-to-wpa.md index 211d4fb..275fe4d 100644 --- a/doc/hotspot-to-wpa.md +++ b/doc/hotspot-to-wpa.md @@ -1,7 +1,14 @@ -Use WPA2 network with hotspot credentials -========================================= +Use WPA network with hotspot credentials +======================================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -10,37 +17,56 @@ Description ----------- RouterOS supports an unlimited number of MAC address specific passphrases -for WPA2 encrypted wifi networks via access list. The idea of this script -is to transfer hotspot credentials to MAC address specific WPA2 passphrase. +for WPA encrypted wifi networks via access list. The idea of this script +is to transfer hotspot credentials to MAC address specific WPA passphrase. Requirements and installation ----------------------------- -You need a properly configured hotspot on one (open) SSID and a WP2 enabled +You need a properly configured hotspot on one (open) SSID and a WPA enabled SSID with suffix "`-wpa`". -Then install the script: +Then install the script. +Depending on whether you use `wifi` package (`/interface/wifi`)or legacy +wifi with CAPsMAN (`/caps-man`) you need to install a different script and +set it as `on-login` script in hotspot. + +For `wifi`: - $ScriptInstallUpdate hotspot-to-wpa; + $ScriptInstallUpdate hotspot-to-wpa.wifi; + /ip/hotspot/user/profile/set on-login="hotspot-to-wpa.wifi" [ find ]; -Configure your hotspot to use this script as `on-login` script: +For legacy CAPsMAN: - /ip/hotspot/user/profile/set on-login=hotspot-to-wpa [ find ]; + $ScriptInstallUpdate hotspot-to-wpa.capsman; + /ip/hotspot/user/profile/set on-login="hotspot-to-wpa.capsman" [ find ]; ### Automatic cleanup With just `hotspot-to-wpa` installed the mac addresses will last in the -access list forever. Install the optional script for automatic cleanup: +access list forever. Install the optional script for automatic cleanup +and add a scheduler. + +For `wifi`: + + $ScriptInstallUpdate hotspot-to-wpa-cleanup.wifi,lease-script; + /system/scheduler/add interval=1d name=hotspot-to-wpa-cleanup on-event="/system/script/run hotspot-to-wpa-cleanup.wifi;" start-time=startup; - $ScriptInstallUpdate hotspot-to-wpa-cleanup,lease-script; +For legacy CAPsMAN: -Create a scheduler: + $ScriptInstallUpdate hotspot-to-wpa-cleanup.capsman,lease-script; + /system/scheduler/add interval=1d name=hotspot-to-wpa-cleanup on-event="/system/script/run hotspot-to-wpa-cleanup.capsman;" start-time=startup; - /system/scheduler/add interval=1d name=hotspot-to-wpa-cleanup on-event="/system/script/run hotspot-to-wpa-cleanup;" start-time=startup; +And add the lease script and matcher comment to your wpa interfaces' dhcp +server. You can add more information to the comment, separated by comma. In +this example the server is called `hotspot-to-wpa`. -And add the lease script to your wpa interfaces' dhcp server: + /ip/dhcp-server/set lease-script=lease-script comment="hotspot-to-wpa=wpa" hotspot-to-wpa; - /ip/dhcp-server/set lease-script=lease-script [ find where name~"wpa" ]; +You can specify the timeout after which a device is removed from leases and +access-list. The default is four weeks. + + /ip/dhcp-server/set lease-script=lease-script comment="hotspot-to-wpa=wpa, timeout=2w" hotspot-to-wpa; Configuration ------------- @@ -54,17 +80,25 @@ Create hotspot login credentials: /ip/hotspot/user/add comment="Test User 1" name=user1 password=v3ry; /ip/hotspot/user/add comment="Test User 2" name=user2 password=s3cr3t; +This also works with authentication via radius, but is limited then: +Additional information is not available, including the password. + Additionally templates can be created to give more options for access list: * `action`: set to `reject` to ignore logins on that hotspot -* `private-passphrase`: do **not** use passphrase from hotspot's user - credentials, but given one - or unset (use default passphrase) with - special word `ignore` +* `passphrase` or `private-passphrase`: do **not** use passphrase from + hotspot's user credentials, but given one - or unset (use default + passphrase) with special word `ignore` * `ssid-regexp`: set a different SSID regular expression to match * `vlan-id`: connect device to specific VLAN * `vlan-mode`: set the VLAN mode for device -For a hotspot called `example` the template could look like this: +For a hotspot called `example` the template could look like this. +For `wifi`: + + /interface/wifi/access-list/add comment="hotspot-to-wpa template example" disabled=yes passphrase="ignore" ssid-regexp="^example\$" vlan-id=10; + +For legacy CAPsMAN: /caps-man/access-list/add comment="hotspot-to-wpa template example" disabled=yes private-passphrase="ignore" ssid-regexp="^example\$" vlan-id=10 vlan-mode=use-tag; @@ -77,7 +111,7 @@ Usage and invocation -------------------- Now let the users connect and login to the hotspot. After that the devices -(identified by MAC address) can connect to the WPA2 network, using the +(identified by MAC address) can connect to the WPA network, using the passphrase from hotspot credentials. See also @@ -86,5 +120,5 @@ See also * [Run other scripts on DHCP lease](lease-script.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/ip-addr-bridge.md b/doc/ip-addr-bridge.md index f0b593e..941a8ae 100644 --- a/doc/ip-addr-bridge.md +++ b/doc/ip-addr-bridge.md @@ -1,7 +1,14 @@ Manage IP addresses with bridge status ====================================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) Description ----------- @@ -28,5 +35,5 @@ Note that IP addresses on bridges without a single port (acting as loopback interface) are ignored. --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/ipsec-to-dns.md b/doc/ipsec-to-dns.md index 87ad21a..0a91960 100644 --- a/doc/ipsec-to-dns.md +++ b/doc/ipsec-to-dns.md @@ -1,7 +1,14 @@ Create DNS records for IPSec peers ================================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -36,11 +43,15 @@ The configuration goes to `global-config-overlay`, these are the parameters: * `HostNameInZone`: whether or not to add the ipsec/dns server's hostname * `PrefixInZone`: whether or not to add prefix `ipsec` +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + See also -------- * [Create DNS records for DHCP leases](dns-to-dhcp.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/ipv6-update.md b/doc/ipv6-update.md index 7c5a943..20265fe 100644 --- a/doc/ipv6-update.md +++ b/doc/ipv6-update.md @@ -1,7 +1,14 @@ Update configuration on IPv6 prefix change ========================================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -11,7 +18,7 @@ Description With changing IPv6 prefix from ISP this script handles to update... -* ipv6 firewall address-list +* ipv6 firewall address-list (prefixes (`/64`) and host addresses (`/128`)) * dns records Requirements and installation @@ -52,6 +59,11 @@ has to be associated to an interface in comment: /ipv6/firewall/address-list/add address=2003:cf:2f0f:de01::/64 comment="ipv6-pool-isp, interface=br-local" list=local; +Updating address list entries with host addresses works as well, the new +prefix is combinded with given suffix then: + + /ipv6/firewall/address-list/add address=2003:cf:2f0f:de01:e3e0:f8fa:8cd6:dbe1/128 comment="ipv6-pool-isp, interface=br-local" list=hosts; + Static DNS records need a special comment to be updated. Again it has to start with "`ipv6-pool-`" and actual pool name, followed by a comma, "`interface=`" and the name of interface this address is connected to: @@ -64,5 +76,5 @@ See also * [Run scripts on ppp connection](ppp-on-up.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/lease-script.md b/doc/lease-script.md index a435d43..4d2f3bc 100644 --- a/doc/lease-script.md +++ b/doc/lease-script.md @@ -1,7 +1,14 @@ Run other scripts on DHCP lease =============================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -40,8 +47,8 @@ See also * [Collect MAC addresses in wireless access list](collect-wireless-mac.md) * [Comment DHCP leases with info from access list](dhcp-lease-comment.md) * [Create DNS records for DHCP leases](dhcp-to-dns.md) -* [Use WPA2 network with hotspot credentials](hotspot-to-wpa.md) +* [Use WPA network with hotspot credentials](hotspot-to-wpa.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/leds-mode.md b/doc/leds-mode.md index 65f9f01..90ea418 100644 --- a/doc/leds-mode.md +++ b/doc/leds-mode.md @@ -1,7 +1,14 @@ Manage LEDs dark mode ===================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) Description ----------- @@ -46,5 +53,5 @@ See also * [Mode button with multiple presses](mode-button.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/log-forward.d/notification.avif b/doc/log-forward.d/notification.avif Binary files differnew file mode 100644 index 0000000..a0f9ab3 --- /dev/null +++ b/doc/log-forward.d/notification.avif diff --git a/doc/log-forward.d/notification.svg b/doc/log-forward.d/notification.svg deleted file mode 100644 index 373144b..0000000 --- a/doc/log-forward.d/notification.svg +++ /dev/null @@ -1,192 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - width="573.77948" - height="203.77945" - viewBox="0 0 151.81249 53.91663" - version="1.1" - id="svg8" - inkscape:version="1.1 (c4e8f9ed74, 2021-05-24)" - sodipodi:docname="log-forward.svg" - inkscape:export-filename="logo.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <defs - id="defs2"> - <rect - x="180" - y="0" - width="470.72174" - height="388.66614" - id="rect4813" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.52" - inkscape:cx="144.40789" - inkscape:cy="143.42105" - inkscape:document-units="px" - inkscape:current-layer="layer1" - inkscape:document-rotation="0" - showgrid="true" - units="px" - inkscape:window-width="1920" - inkscape:window-height="1047" - inkscape:window-x="0" - inkscape:window-y="33" - inkscape:window-maximized="1" - inkscape:pagecheckerboard="0" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0"> - <inkscape:grid - type="xygrid" - id="grid833" - originx="16.375006" - originy="11.083318" /> - </sodipodi:namedview> - <metadata - id="metadata5"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(16.374996,11.083327)"> - <rect - style="fill:#e6e6e6;stroke:#6c5d53;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="rect857" - width="150.81248" - height="52.916653" - x="-15.875002" - y="-10.583333" - rx="1.885156" /> - <g - id="g884" - transform="matrix(0.5,0,0,0.5,-12.40625,-7.1145834)" - style="stroke-width:2"> - <path - sodipodi:type="star" - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264584;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path899" - sodipodi:sides="4" - sodipodi:cx="12.700001" - sodipodi:cy="12.700001" - sodipodi:r1="14.81729" - sodipodi:r2="10.477405" - sodipodi:arg1="0.78539816" - sodipodi:arg2="1.5707963" - inkscape:flatsided="true" - inkscape:rounded="0.2" - inkscape:randomized="0" - d="m 23.177407,23.177407 c -2.963458,2.963458 -17.9913546,2.963458 -20.9548127,0 -2.96345803,-2.963458 -2.96345808,-17.9913546 0,-20.9548127 2.963458,-2.96345803 17.9913547,-2.96345808 20.9548127,0 2.963458,2.963458 2.963458,17.9913547 0,20.9548127 z" /> - <g - id="g871" - style="stroke-width:2"> - <g - aria-label="#!rsc" - id="text837"> - <path - d="M 7.483197,16.645533 V 15.621671 H 6.9371377 l 0.165768,-1.277388 H 5.8255169 l -0.165768,1.277388 h -0.975106 l 0.165768,-1.277388 H 3.5730221 l -0.165768,1.277388 H 2.7051778 v 1.023862 H 3.2707393 L 3.0269628,18.517736 H 2.3443886 v 1.023861 H 2.890448 L 2.7051778,20.935999 H 3.9825666 L 4.1678368,19.541597 H 5.1429427 L 4.9576726,20.935999 H 6.2350614 L 6.4203315,19.541597 H 7.1224078 V 18.517736 H 6.5568464 l 0.2437764,-1.872203 z m -2.2037394,1.872203 h -0.975106 l 0.2437765,-1.872203 h 0.975106 z" - style="stroke-width:0.529163px" - id="path851" /> - <path - d="m 9.6186715,14.178515 h -1.638178 l 0.1950212,4.270964 h 1.2481356 z m -0.819089,5.15831 c -0.487553,0 -0.8775954,0.399794 -0.8775954,0.877596 0,0.487552 0.3900424,0.887346 0.8775954,0.887346 0.497304,0 0.8873464,-0.399794 0.8873464,-0.887346 0,-0.477802 -0.3900424,-0.877596 -0.8873464,-0.877596 z" - style="stroke-width:0.529163px" - id="path853" /> - <path - d="m 13.372827,15.61192 c -0.594815,0 -1.10187,0.429047 -1.335895,1.150625 l -0.136515,-1.004359 h -1.335895 v 5.177813 h 1.540667 v -2.603533 c 0.175519,-0.770334 0.438798,-1.228633 1.072617,-1.228633 0.165768,0 0.302283,0.02925 0.468051,0.06826 l 0.243776,-1.491912 c -0.175519,-0.04875 -0.321785,-0.06826 -0.516806,-0.06826 z" - style="stroke-width:0.529163px" - id="path855" /> - <path - d="m 16.181119,15.592418 c -1.306642,0 -2.11598,0.692326 -2.11598,1.579672 0,0.799587 0.507055,1.326144 1.530916,1.618676 0.936102,0.263278 1.092119,0.37054 1.092119,0.721578 0,0.312034 -0.282781,0.487553 -0.750832,0.487553 -0.507055,0 -0.984857,-0.204772 -1.374899,-0.507055 l -0.750832,0.838591 c 0.507055,0.4583 1.267638,0.770334 2.164736,0.770334 1.287139,0 2.30125,-0.633819 2.30125,-1.706435 0,-0.926351 -0.575313,-1.355398 -1.599174,-1.64793 -0.926351,-0.273029 -1.062866,-0.390042 -1.062866,-0.663072 0,-0.234025 0.204773,-0.390042 0.624068,-0.390042 0.448549,0 0.877595,0.146266 1.277389,0.399793 l 0.565561,-0.867844 C 17.604773,15.836195 16.93195,15.592418 16.181119,15.592418 Z" - style="stroke-width:0.529163px" - id="path857" /> - <path - d="m 21.280919,15.592418 c -1.550418,0 -2.535275,1.150625 -2.535275,2.798554 0,1.638178 0.975106,2.710795 2.564528,2.710795 0.711828,0 1.267638,-0.234026 1.74544,-0.614317 l -0.672823,-0.955604 c -0.37054,0.234026 -0.624068,0.351038 -0.994608,0.351038 -0.614317,0 -1.023861,-0.351038 -1.023861,-1.501663 0,-1.160376 0.380291,-1.608925 1.043363,-1.608925 0.351038,0 0.653321,0.117013 0.984857,0.370541 l 0.663072,-0.9166 c -0.497304,-0.419295 -1.053114,-0.633819 -1.774693,-0.633819 z" - style="stroke-width:0.529163px" - id="path859" /> - </g> - <g - id="g1542" - transform="matrix(2,0,0,2,-0.41134438,3.175)" - style="stroke-width:1"> - <path - d="M 4.9596016,-1.0195918 C 5.3675734,1.8116029 6.8867822,3.5302649 9.983482,3.6714361 7.0655129,4.7878541 4.0581782,2.1638833 4.9596016,-1.0195918" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path943" /> - <path - d="m 3.3406657,-0.52095963 c 0.034969,-0.00777 0.038854,0.015542 0.041445,0.041445 C 3.4805417,1.3259222 4.2420891,2.6948942 5.2510098,3.6312866 6.2599306,4.5676787 7.6146558,5.3253406 9.525,5.2916667 5.9477993,6.7163303 2.1879835,3.2932527 3.3393705,-0.52095963" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path945" /> - </g> - </g> - </g> - <text - xml:space="preserve" - transform="matrix(0.26458333,0,0,0.26458333,-44.949998,-6.6039318)" - id="text4811" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:15px;font-family:'Fira Mono', 'Roboto Mono', monospace;-inkscape-font-specification:'Fira Mono, Roboto Mono, monospace, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;white-space:pre;shape-inside:url(#rect4813);fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="-248.88142" - y="0"><tspan - x="180" - y="10.85" - id="tspan2317">[MikroTik] ⚠ Log Forwarding -</tspan><tspan - x="180" - y="26.082813" - id="tspan2319"> -</tspan><tspan - x="180" - y="41.082813" - id="tspan2321">The log on MikroTik contains these 3 messages after 6d23:55:18 </tspan><tspan - x="180" - y="56.082811" - id="tspan2323">uptime. -</tspan><tspan - x="180" - y="71.082811" - id="tspan2325"> -</tspan><tspan - x="180" - y="86.082811" - id="tspan2327"> ● 13:24:02 script;error backup-cloud: Failed uploading backup </tspan><tspan - x="180" - y="101.08281" - id="tspan2329">for MikroTik to cloud! -</tspan><tspan - x="180" - y="116.08281" - id="tspan2331"> ● 13:24:17 system;info;account user admin logged in from </tspan><tspan - x="180" - y="131.08281" - id="tspan2333">192.168.88.177 via ssh -</tspan><tspan - x="180" - y="146.08282" - id="tspan2335"> ● 13:24:57 system;info;account user admin logged out from </tspan><tspan - x="180" - y="161.08282" - id="tspan2337">192.168.88.177 via ssh</tspan></text> - </g> -</svg> diff --git a/doc/log-forward.md b/doc/log-forward.md index c91f09a..44409dc 100644 --- a/doc/log-forward.md +++ b/doc/log-forward.md @@ -1,7 +1,14 @@ Forward log messages via notification ===================================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -9,20 +16,28 @@ Forward log messages via notification Description ----------- -RouterOS supports sending log messages via e-mail or to a syslog server. -This has some limitation, however: +RouterOS itself supports sending log messages via e-mail or to a syslog +server (see `/system/logging`). This has some limitation, however: * does not work early after boot if network connectivity is not - yet established + yet established, or breaks intermittently * lots of messages generate a flood of mails * Matrix and Telegram are not supported -The script is intended to be run periodically. It collects log messages -and forwards them via notification. +The script works around the limitations, for example it does: + +* read from `/log`, including messages from early boot +* skip multi-repeated messages +* rate-limit itself to mitigate flooding +* forward via notification (which includes *e-mail*, *Matrix* and *Telegram* + when installed and configured, see below) + +It is intended to be run periodically from scheduler, then collects new +log messages and forwards them via notification. ### Sample notification -![log-forward notification](log-forward.d/notification.svg) +![log-forward notification](log-forward.d/notification.avif) Requirements and installation ----------------------------- @@ -46,10 +61,35 @@ The configuration goes to `global-config-overlay`, these are the parameters: * `LogForwardIncludeMessage`: define message text to be forwarded (even if filter matches) -Also notification settings are required for e-mail, -[matrix](mod/notification-matrix.md) and/or +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + +These patterns are matched as +[regular expressions](https://wiki.mikrotik.com/wiki/Manual:Regular_Expressions). +To forward **all** (ignoring severity) log messages with topics `account` +(which includes user logins) and `dhcp` you need something like: + + :global LogForwardInclude "(account|dhcp)"; + +Also notification settings are required for +[e-mail](mod/notification-email.md), +[matrix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or [telegram](mod/notification-telegram.md). +Tips & Tricks +------------- + +### Notification on reboot + +You want to receive a notification on every device (re-)boot? Quite easy, +just add: + + :global LogForwardIncludeMessage "(^router rebooted)"; + +This will match on every log message beginning with `router rebooted`. + --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/mod/bridge-port-to.md b/doc/mod/bridge-port-to.md index f86b21d..5c8bebc 100644 --- a/doc/mod/bridge-port-to.md +++ b/doc/mod/bridge-port-to.md @@ -1,7 +1,14 @@ Manage ports in bridge ====================== -[◀ Go back to main README](../../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../../README.md) > ℹ️️ **Info**: This module can not be used on its own but requires the base > installation. See [main README](../../README.md) for details. @@ -77,5 +84,5 @@ See also * [Manage VLANs on bridge ports](bridge-port-vlan.md) --- -[◀ Go back to main README](../../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/mod/bridge-port-vlan.md b/doc/mod/bridge-port-vlan.md index 0e6c28f..d23d5b5 100644 --- a/doc/mod/bridge-port-vlan.md +++ b/doc/mod/bridge-port-vlan.md @@ -1,7 +1,14 @@ Manage VLANs on bridge ports ============================ -[◀ Go back to main README](../../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../../README.md) > ℹ️️ **Info**: This module can not be used on its own but requires the base > installation. See [main README](../../README.md) for details. @@ -81,5 +88,5 @@ See also * [Manage ports in bridge](bridge-port-to.md) --- -[◀ Go back to main README](../../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/mod/inspectvar.md b/doc/mod/inspectvar.md index 7782c8a..d4e59b3 100644 --- a/doc/mod/inspectvar.md +++ b/doc/mod/inspectvar.md @@ -1,7 +1,14 @@ Inspect variables ================= -[◀ Go back to main README](../../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../../README.md) > ℹ️️ **Info**: This module can not be used on its own but requires the base > installation. See [main README](../../README.md) for details. @@ -29,5 +36,5 @@ Call the function `$InspectVar` with a variable as parameter: ![InspectVar](inspectvar.d/inspectvar.avif) --- -[◀ Go back to main README](../../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/mod/ipcalc.md b/doc/mod/ipcalc.md index a3e7fc8..cb655bc 100644 --- a/doc/mod/ipcalc.md +++ b/doc/mod/ipcalc.md @@ -1,7 +1,14 @@ IP address calculation ====================== -[◀ Go back to main README](../../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../../README.md) > ℹ️️ **Info**: This module can not be used on its own but requires the base > installation. See [main README](../../README.md) for details. @@ -49,5 +56,5 @@ the information in a named array. ![IPCalcReturn](ipcalc.d/ipcalcreturn.avif) --- -[◀ Go back to main README](../../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/mod/notification-email.md b/doc/mod/notification-email.md new file mode 100644 index 0000000..2138e31 --- /dev/null +++ b/doc/mod/notification-email.md @@ -0,0 +1,88 @@ +Send notifications via e-mail +============================= + +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../../README.md) + +> ℹ️️ **Info**: This module can not be used on its own but requires the base +> installation. See [main README](../../README.md) for details. + +Description +----------- + +This module adds support for sending notifications via e-mail. A queue is +used to make sure notifications are not lost on failure but sent later. + +Requirements and installation +----------------------------- + +Just install the module: + + $ScriptInstallUpdate mod/notification-email; + +Also you need a valid e-mail account with smtp login credentials. + +Configuration +------------- + +Set up your device's +[e-mail settings](https://wiki.mikrotik.com/wiki/Manual:Tools/email). +Also make sure the device has correct time configured, best is to set up +the ntp client. + +Then edit `global-config-overlay`, add `EmailGeneralTo` with a valid +recipient address. Finally reload the configuration. + +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + +### Sending to several recipients + +Sending notifications to several recipients is possible as well. Add +`EmailGeneralCc` on top, which can have a single mail address or a comma +separated list. + +Usage and invocation +-------------------- + +There's nothing special to do. Every script or function sending a notification +will now send it to your e-mail account. + +But of course you can use the function to send notifications directly. Give +it a try: + + $SendEMail "Subject..." "Body..."; + +Alternatively this sends a notification with all available and configured +methods: + + $SendNotification "Subject..." "Body..."; + +To use the functions in your own scripts you have to declare them first. +Place this before you call them: + + :global SendEMail; + :global SendNotification; + +In case there is a situation when the queue needs to be purged there is a +function available: + + $PurgeEMailQueue; + +See also +-------- + +* [Send notifications via Matrix](notification-matrix.md) +* [Send notifications via Ntfy](notification-ntfy.md) +* [Send notifications via Telegram](notification-telegram.md) + +--- +[⬅️ Go back to main README](../../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/mod/notification-matrix.d/01-authenticate.avif b/doc/mod/notification-matrix.d/01-authenticate.avif Binary files differnew file mode 100644 index 0000000..b897943 --- /dev/null +++ b/doc/mod/notification-matrix.d/01-authenticate.avif diff --git a/doc/mod/notification-matrix.d/01-home-server.avif b/doc/mod/notification-matrix.d/01-home-server.avif Binary files differdeleted file mode 100644 index 683c7b5..0000000 --- a/doc/mod/notification-matrix.d/01-home-server.avif +++ /dev/null diff --git a/doc/mod/notification-matrix.d/02-access-token.avif b/doc/mod/notification-matrix.d/02-access-token.avif Binary files differdeleted file mode 100644 index 54109a6..0000000 --- a/doc/mod/notification-matrix.d/02-access-token.avif +++ /dev/null diff --git a/doc/mod/notification-matrix.d/02-join-room.avif b/doc/mod/notification-matrix.d/02-join-room.avif Binary files differnew file mode 100644 index 0000000..ad99ffd --- /dev/null +++ b/doc/mod/notification-matrix.d/02-join-room.avif diff --git a/doc/mod/notification-matrix.d/03-join-room.avif b/doc/mod/notification-matrix.d/03-join-room.avif Binary files differdeleted file mode 100644 index 45974b8..0000000 --- a/doc/mod/notification-matrix.d/03-join-room.avif +++ /dev/null diff --git a/doc/mod/notification-matrix.md b/doc/mod/notification-matrix.md index c5003e0..92383be 100644 --- a/doc/mod/notification-matrix.md +++ b/doc/mod/notification-matrix.md @@ -1,7 +1,14 @@ Send notifications via Matrix ============================= -[◀ Go back to main README](../../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../../README.md) > ℹ️️ **Info**: This module can not be used on its own but requires the base > installation. See [main README](../../README.md) for details. @@ -21,8 +28,8 @@ Just install the module: $ScriptInstallUpdate mod/notification-matrix; Also install a Matrix client on at least one of your mobile and/or desktop -devices. As there is no privilege separation you should create a dedicated -notification account, in addition to your general user account. +devices. Create and setup an account there, we will reference that as +"*general account*" later. Configuration ------------- @@ -31,58 +38,60 @@ Edit `global-config-overlay`, add `MatrixHomeServer`, `MatrixAccessToken` and `MatrixRoom` - see below on hints how to retrieve this information. Then reload the configuration. -### Home server +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. -Matrix user accounts are identified by a unique user id in the form of -`@localpart:domain`. The `domain` part is not necessarily your home server -address, you have to resolve it with the procedure described in the -[Matrix specification](https://spec.matrix.org/latest/client-server-api/#server-discovery). +The Matrix server is connected via encrypted https, and certificate +verification is applied. So make sure you have the certificate chain for +your server in device's certificate store. -Your best bet is to query the server at `domain` with the -[well-known uri](https://spec.matrix.org/latest/client-server-api/#well-known-uri). -For "*matrix.org*" this query is: +> ℹ️ **Info**: The *matrix.org* server uses a Cloudflare certificate. You can +> install that with: `$CertificateAvailable "Cloudflare Inc ECC CA-3"` - /tool/fetch "https://matrix.org/.well-known/matrix/client" output=user; +### From other device -![home server](notification-matrix.d/01-home-server.avif) +If you have setup your Matrix *notification account* before just reuse that. +Copy the relevant configuration to the device to be configured. -So the home server for "*matrix.org*" is "*matrix-client.matrix.org*". -Please strip the protocol ("*https://*") for `MatrixHomeServer` if given. +### Setup new account -### Access token +As there is no privilege separation you should create a dedicated account +for use with these scripts, in addition to your *general account*. +We will reference that as "*notification account*" in the following steps. -After discovering the correct home server an access token has to be created. -For this the login credentials (username and password) of the notification -account must be sent to the home server via -[client server api](https://matrix.org/docs/guides/client-server-api#login). +#### Authenticate + +Matrix user accounts are identified by a unique user id in the form of +`@localpart:domain`. Use that and your password to generate an access token +and write first part of the configuration: -We use the home server discovered above, "*matrix-client.matrix.org*". -The user is "*example*" and password is "*v3ry-s3cr3t*". + $SetupMatrixAuthenticate "@example:matrix.org" "v3ry-s3cr3t"; - /tool/fetch "https://matrix-client.matrix.org/_matrix/client/r0/login" http-method=post http-data="{\"type\":\"m.login.password\", \"user\":\"example\", \"password\":\"v3ry-s3cr3t\"}" output=user; +![authenticate](notification-matrix.d/01-authenticate.avif) -![access token](notification-matrix.d/02-access-token.avif) +The configuration is written to a new configuration snippet +`global-config-overlay.d/mod/notification-matrix`. -The server replied with a JSON object containing the `access_token`, use that -for `MatrixAccessToken`. +#### Join Room -### Room +Every Matix chat is a room, so we have to create one. Do that with your +*general account*, this makes sure your *general account* is the room owner. +Then join the room and invite the *notification account* by its user id +"*@example:matrix.org*". +Look up the *room id* within the Matrix client, it should read like +"*!WUcxpSjKyxSGelouhA:matrix.org*" (starting with an exclamation mark and +ending with the domain). -Every Matix chat is a room, so we have to create one. Do so with your general -user, this makes sure your general user is the room owner. Then join the room -and invite the notification user by its user id "*@example:matrix.org*". Look -up the room id within the Matrix client, it should read like -"*!WUcxpSjKyxSGelouhA:matrix.org*". Use that for `MatrixRoom`. +Finally make the *notification account* join into the room by accepting +the invite. -Finally join the notification user to the room by accepting the invite. Again, -this can be done with -[client server api](https://matrix.org/docs/guides/client-server-api#joining-a-room-via-an-invite). -Make sure to replace room id ("*!*" is escaped with "*%21*") and access token -with your data. + $SetupMatrixJoinRoom "!WUcxpSjKyxSGelouhA:matrix.org"; - /tool/fetch "https://matrix-client.matrix.org/_matrix/client/r0/rooms/%21WUcxpSjKyxSGelouhA:matrix.org/join?access_token=yt_ZXdvcm0tdGVzdA_NNqUyvKHRhBLZmnzVVSK_0xu6yN" http-method=post http-data="" output=user; +![join room](notification-matrix.d/02-join-room.avif) -![join room](notification-matrix.d/03-join-room.avif) +The configuration is appended to the configuration snippet +`global-config-overlay.d/mod/notification-matrix`. Usage and invocation -------------------- @@ -90,21 +99,34 @@ Usage and invocation There's nothing special to do. Every script or function sending a notification will now send it to your Matrix account. -But of course you can send notifications directly or use a function in your -own scripts. Give it a try: +But of course you can use the function to send notifications directly. Give +it a try: - $SendMatrix "Subject..." "Body..." + $SendMatrix "Subject..." "Body..."; Alternatively this sends a notification with all available and configured methods: - $SendNotification "Subject..." "Body..." + $SendNotification "Subject..." "Body..."; + +To use the functions in your own scripts you have to declare them first. +Place this before you call them: + + :global SendMatrix; + :global SendNotification; + +In case there is a situation when the queue needs to be purged there is a +function available: + + $PurgeMatrixQueue; See also -------- +* [Send notifications via e-mail](notification-email.md) +* [Send notifications via Ntfy](notification-ntfy.md) * [Send notifications via Telegram](notification-telegram.md) --- -[◀ Go back to main README](../../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/mod/notification-ntfy.md b/doc/mod/notification-ntfy.md new file mode 100644 index 0000000..b2330a5 --- /dev/null +++ b/doc/mod/notification-ntfy.md @@ -0,0 +1,91 @@ +Send notifications via Ntfy +=========================== + +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../../README.md) + +> ℹ️️ **Info**: This module can not be used on its own but requires the base +> installation. See [main README](../../README.md) for details. + +Description +----------- + +This module adds support for sending notifications via +[Ntfy](https://ntfy.sh/). A queue is used to make sure +notifications are not lost on failure but sent later. + +Requirements and installation +----------------------------- + +Just install the module: + + $ScriptInstallUpdate mod/notification-ntfy; + +Also install the Ntfy app on your mobile device or use the +[web app](https://ntfy.sh/app) in a browser of your choice. + +Configuration +------------- + +Creating an account is not required. Just choose a topic and you are good +to go. + +> ⚠️ **Warning**: If you use ntfy without sign-up, the topic is essentially +> a password, so pick something that's not easily guessable. + +Edit `global-config-overlay`, add `NtfyServer` (leave it unchanged, unless +you are self-hosting the service) and `NtfyTopic` with your choosen topic. +Then reload the configuration. + +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + +Using a paid account or running a server on-premises allows to add additional +basic authentication. Configure `NtfyServerUser` and `NtfyServerPass` for this. +Even authentication via access token is possible, adding it as password with +a blank username. + +Usage and invocation +-------------------- + +There's nothing special to do. Every script or function sending a notification +will now send it to your Ntfy topic. + +But of course you can use the function to send notifications directly. Give +it a try: + + $SendNtfy "Subject..." "Body..."; + +Alternatively this sends a notification with all available and configured +methods: + + $SendNotification "Subject..." "Body..."; + +To use the functions in your own scripts you have to declare them first. +Place this before you call them: + + :global SendNtfy; + :global SendNotification; + +In case there is a situation when the queue needs to be purged there is a +function available: + + $PurgeNtfyQueue; + +See also +-------- + +* [Send notifications via e-mail](notification-email.md) +* [Send notifications via Matrix](notification-matrix.md) +* [Send notifications via Telegram](notification-telegram.md) + +--- +[⬅️ Go back to main README](../../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/mod/notification-telegram.d/setuserpic.avif b/doc/mod/notification-telegram.d/setuserpic.avif Binary files differnew file mode 100644 index 0000000..2017d20 --- /dev/null +++ b/doc/mod/notification-telegram.d/setuserpic.avif diff --git a/doc/mod/notification-telegram.md b/doc/mod/notification-telegram.md index 3bb31a7..159fda9 100644 --- a/doc/mod/notification-telegram.md +++ b/doc/mod/notification-telegram.md @@ -1,7 +1,14 @@ Send notifications via Telegram =============================== -[◀ Go back to main README](../../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../../README.md) > ℹ️️ **Info**: This module can not be used on its own but requires the base > installation. See [main README](../../README.md) for details. @@ -41,6 +48,10 @@ Finally edit `global-config-overlay`, add `TelegramTokenId` with the token from *BotFather* and `TelegramChatId` with your id from *GetIDs Bot*. Then reload the configuration. +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + ### Notifications to a group Sending notifications to a group is possible as well. Add your bot and the @@ -53,21 +64,49 @@ Usage and invocation There's nothing special to do. Every script or function sending a notification will now send it to your Telegram account. -But of course you can send notifications directly or use a function in your -own scripts. Give it a try: +But of course you can use the function to send notifications directly. Give +it a try: - $SendTelegram "Subject..." "Body..." + $SendTelegram "Subject..." "Body..."; Alternatively this sends a notification with all available and configured methods: - $SendNotification "Subject..." "Body..." + $SendNotification "Subject..." "Body..."; + +To use the functions in your own scripts you have to declare them first. +Place this before you call them: + + :global SendTelegram; + :global SendNotification; + +In case there is a situation when the queue needs to be purged there is a +function available: + + $PurgeTelegramQueue; + +Tips & Tricks +------------- + +### Set a profile photo + +You can use a profile photo for your bot to make it recognizable. Open the +chat with [BotFather](https://t.me/BotFather) and set it there. + +![set profile photo](notification-telegram.d/setuserpic.avif) + +Have a look at my +[RouterOS-Scripts Logo Color Changer](https://git.eworm.de/cgit/routeros-scripts/plain/contrib/logo-color.html) +to create a colored version of this scripts' logo. See also -------- +* [Chat with your router and send commands via Telegram bot](../telegram-chat.md) +* [Send notifications via e-mail](notification-email.md) * [Send notifications via Matrix](notification-matrix.md) +* [Send notifications via Ntfy](notification-ntfy.md) --- -[◀ Go back to main README](../../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/mod/scriptrunonce.md b/doc/mod/scriptrunonce.md index 6efa1b7..c5fa891 100644 --- a/doc/mod/scriptrunonce.md +++ b/doc/mod/scriptrunonce.md @@ -1,7 +1,14 @@ Download script and run it once =============================== -[◀ Go back to main README](../../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../../README.md) > ℹ️️ **Info**: This module can not be used on its own but requires the base > installation. See [main README](../../README.md) for details. @@ -27,9 +34,13 @@ The optional configuration goes to `global-config-overlay`. * `ScriptRunOnceBaseUrl`: base url, prepended to parameter * `ScriptRunOnceUrlSuffix`: url suffix, appended to parameter +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + If the parameter passed to the function is not a complete URL (starting -with protocol `ftp://`, `http://`, `https://` or `sftp://`) the values are -prepended and appended. +with protocol `ftp://`, `http://`, `https://` or `sftp://`) the base-url is +prepended, and file extension `.rsc` and url-suffix are appended. Usage and invocation -------------------- @@ -44,5 +55,5 @@ The function `$ScriptRunOnce` expects an URL (or name if Giving multiple scripts is possible, separated by comma. --- -[◀ Go back to main README](../../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/mod/ssh-keys-import.md b/doc/mod/ssh-keys-import.md new file mode 100644 index 0000000..db8e322 --- /dev/null +++ b/doc/mod/ssh-keys-import.md @@ -0,0 +1,73 @@ +Import ssh keys for public key authentication +============================================= + +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../../README.md) + +> ℹ️️ **Info**: This module can not be used on its own but requires the base +> installation. See [main README](../../README.md) for details. + +Description +----------- + +RouterOS supports ssh login with public key authentication. The functions +in this module help importing the keys. + +Requirements and installation +----------------------------- + +Just install the module: + + $ScriptInstallUpdate mod/ssh-keys-import; + +Usage and invocation +-------------------- + +### Import single key from terminal + +Call the function `$SSHKeysImport` with key and user as parameter to +import that key: + + $SSHKeysImport "ssh-rsa AAAAB3Nza...QYZk8= user" admin; + +Starting with RouterOS *7.12beta1* support for keys of type `ed25519` has +been added: + + $SSHKeysImport "ssh-ed25519 AAAAC3Nza...ZVugJT user" admin; + +The third part of the key (`user` in this example) is inherited as +`key-owner` in RouterOS. Also the `MD5` fingerprint is recorded, this helps +to audit and verify the available keys. + +> ℹ️️ **Info**: Use `ssh-keygen` to show a fingerprint of an existing public +> key file: `ssh-keygen -l -E md5 -f ~/.ssh/id_ed25519.pub` + +### Import several keys from file + +The functions `$SSHKeysImportFile` can read an `authorized_keys`-style file +and import all the keys. The user given to the function can be overwritting +from comments in the file. Create a file `keys.pub` with this content: + +``` +ssh-ed25519 AAAAC3Nza...3OcN8A user@client +ssh-rsa AAAAB3Nza...ozyts= worker@station +# user=example +ssh-rsa AAAAB3Nza...GXQVk= person@host +``` + +Then import it with: + + $SSHKeysImportFile keys.pub admin; + +This will import the first two keys for user `admin` (as given to function) +and the third one for user `example` (as defined in comment). + +--- +[⬅️ Go back to main README](../../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/mode-button.md b/doc/mode-button.md index ef7754c..8734352 100644 --- a/doc/mode-button.md +++ b/doc/mode-button.md @@ -1,7 +1,14 @@ Mode button with multiple presses ================================= -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -52,7 +59,11 @@ Configuration The configuration goes to `global-config-overlay`, these are the parameters: * `ModeButton`: an array with defined actions -* `ModeButtonLED`: led to give visual feedback +* `ModeButtonLED`: led to give visual feedback, `type` must be `on` or `off` + +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. Usage and invocation -------------------- @@ -60,5 +71,5 @@ Usage and invocation Press the mode button. 😜 --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/netwatch-dns.md b/doc/netwatch-dns.md index 8e897d1..443106f 100644 --- a/doc/netwatch-dns.md +++ b/doc/netwatch-dns.md @@ -1,7 +1,14 @@ Manage DNS and DoH servers from netwatch ======================================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -39,10 +46,26 @@ If *cloudflare-dns* is down the script will fall back to *quad-nine* for DoH. Giving a specific query url for DoH is possible: - /tool/netwatch/add comment="doh, ame=nextdns, doh-url=https://dns.nextdns.io/dns-query" host=199.247.16.158; + /tool/netwatch/add comment="doh, doh-url=https://dns.nextdns.io/dns-query" host=199.247.16.158; Note that using a name in DoH url may introduce a chicken-and-egg issue! +Adding a static DNS record has the same result for the url, but always +resolves to the same address. + + /ip/dns/static/add name="dns.nextdns.io" address=199.247.16.158; + /tool/netwatch/add comment="doh" host=199.247.16.158; + +Be aware that you have to keep the ip address in sync with real world +manually! + +Importing a certificate automatically is possible, at least if available in +the repository (see `certs` sub directory). + + /tool/netwatch/add comment="doh, doh-cert=DigiCert Global G2 TLS RSA SHA256 2020 CA1" host=1.1.1.1; + /tool/netwatch/add comment="doh, doh-cert=DigiCert TLS Hybrid ECC SHA384 2020 CA1" host=9.9.9.9; + /tool/netwatch/add comment="doh, doh-cert=GTS CA 1C3" host=8.8.8.8; + Sometimes using just one specific (possibly internal) DNS server may be desired, with fallback in case it fails. This is possible as well: @@ -67,5 +90,5 @@ See also * [Notify on host up and down](netwatch-notify.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/netwatch-notify.d/notification-01-down.avif b/doc/netwatch-notify.d/notification-01-down.avif Binary files differnew file mode 100644 index 0000000..894fb23 --- /dev/null +++ b/doc/netwatch-notify.d/notification-01-down.avif diff --git a/doc/netwatch-notify.d/notification-01-down.svg b/doc/netwatch-notify.d/notification-01-down.svg deleted file mode 100644 index 3a9133e..0000000 --- a/doc/netwatch-notify.d/notification-01-down.svg +++ /dev/null @@ -1,168 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - width="463.77954" - height="93.779518" - viewBox="0 0 122.70834 24.812492" - version="1.1" - id="svg8" - inkscape:version="1.1 (c4e8f9ed74, 2021-05-24)" - sodipodi:docname="netwatch-notify-down.svg" - inkscape:export-filename="logo.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <defs - id="defs2"> - <rect - x="180" - y="0" - width="658.20044" - height="397.81946" - id="rect4813" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.52" - inkscape:cx="89.144737" - inkscape:cy="90.789474" - inkscape:document-units="px" - inkscape:current-layer="layer1" - inkscape:document-rotation="0" - showgrid="true" - units="px" - inkscape:window-width="1920" - inkscape:window-height="1047" - inkscape:window-x="0" - inkscape:window-y="33" - inkscape:window-maximized="1" - inkscape:pagecheckerboard="0" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0"> - <inkscape:grid - type="xygrid" - id="grid833" - originx="16.375006" - originy="11.083327" /> - </sodipodi:namedview> - <metadata - id="metadata5"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(16.374999,11.083332)"> - <rect - style="fill:#e6e6e6;stroke:#6c5d53;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="rect857" - width="121.70833" - height="23.812496" - x="-15.875" - y="-10.583333" - rx="1.5213542" /> - <g - id="g884" - transform="matrix(0.5,0,0,0.5,-12.40625,-7.1145834)" - style="stroke-width:2"> - <path - sodipodi:type="star" - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264584;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path899" - sodipodi:sides="4" - sodipodi:cx="12.700001" - sodipodi:cy="12.700001" - sodipodi:r1="14.81729" - sodipodi:r2="10.477405" - sodipodi:arg1="0.78539816" - sodipodi:arg2="1.5707963" - inkscape:flatsided="true" - inkscape:rounded="0.2" - inkscape:randomized="0" - d="m 23.177407,23.177407 c -2.963458,2.963458 -17.9913546,2.963458 -20.9548127,0 -2.96345803,-2.963458 -2.96345808,-17.9913546 0,-20.9548127 2.963458,-2.96345803 17.9913547,-2.96345808 20.9548127,0 2.963458,2.963458 2.963458,17.9913547 0,20.9548127 z" /> - <g - id="g871" - style="stroke-width:2"> - <g - aria-label="#!rsc" - id="text837"> - <path - d="M 7.483197,16.645533 V 15.621671 H 6.9371377 l 0.165768,-1.277388 H 5.8255169 l -0.165768,1.277388 h -0.975106 l 0.165768,-1.277388 H 3.5730221 l -0.165768,1.277388 H 2.7051778 v 1.023862 H 3.2707393 L 3.0269628,18.517736 H 2.3443886 v 1.023861 H 2.890448 L 2.7051778,20.935999 H 3.9825666 L 4.1678368,19.541597 H 5.1429427 L 4.9576726,20.935999 H 6.2350614 L 6.4203315,19.541597 H 7.1224078 V 18.517736 H 6.5568464 l 0.2437764,-1.872203 z m -2.2037394,1.872203 h -0.975106 l 0.2437765,-1.872203 h 0.975106 z" - style="stroke-width:0.529163px" - id="path851" /> - <path - d="m 9.6186715,14.178515 h -1.638178 l 0.1950212,4.270964 h 1.2481356 z m -0.819089,5.15831 c -0.487553,0 -0.8775954,0.399794 -0.8775954,0.877596 0,0.487552 0.3900424,0.887346 0.8775954,0.887346 0.497304,0 0.8873464,-0.399794 0.8873464,-0.887346 0,-0.477802 -0.3900424,-0.877596 -0.8873464,-0.877596 z" - style="stroke-width:0.529163px" - id="path853" /> - <path - d="m 13.372827,15.61192 c -0.594815,0 -1.10187,0.429047 -1.335895,1.150625 l -0.136515,-1.004359 h -1.335895 v 5.177813 h 1.540667 v -2.603533 c 0.175519,-0.770334 0.438798,-1.228633 1.072617,-1.228633 0.165768,0 0.302283,0.02925 0.468051,0.06826 l 0.243776,-1.491912 c -0.175519,-0.04875 -0.321785,-0.06826 -0.516806,-0.06826 z" - style="stroke-width:0.529163px" - id="path855" /> - <path - d="m 16.181119,15.592418 c -1.306642,0 -2.11598,0.692326 -2.11598,1.579672 0,0.799587 0.507055,1.326144 1.530916,1.618676 0.936102,0.263278 1.092119,0.37054 1.092119,0.721578 0,0.312034 -0.282781,0.487553 -0.750832,0.487553 -0.507055,0 -0.984857,-0.204772 -1.374899,-0.507055 l -0.750832,0.838591 c 0.507055,0.4583 1.267638,0.770334 2.164736,0.770334 1.287139,0 2.30125,-0.633819 2.30125,-1.706435 0,-0.926351 -0.575313,-1.355398 -1.599174,-1.64793 -0.926351,-0.273029 -1.062866,-0.390042 -1.062866,-0.663072 0,-0.234025 0.204773,-0.390042 0.624068,-0.390042 0.448549,0 0.877595,0.146266 1.277389,0.399793 l 0.565561,-0.867844 C 17.604773,15.836195 16.93195,15.592418 16.181119,15.592418 Z" - style="stroke-width:0.529163px" - id="path857" /> - <path - d="m 21.280919,15.592418 c -1.550418,0 -2.535275,1.150625 -2.535275,2.798554 0,1.638178 0.975106,2.710795 2.564528,2.710795 0.711828,0 1.267638,-0.234026 1.74544,-0.614317 l -0.672823,-0.955604 c -0.37054,0.234026 -0.624068,0.351038 -0.994608,0.351038 -0.614317,0 -1.023861,-0.351038 -1.023861,-1.501663 0,-1.160376 0.380291,-1.608925 1.043363,-1.608925 0.351038,0 0.653321,0.117013 0.984857,0.370541 l 0.663072,-0.9166 c -0.497304,-0.419295 -1.053114,-0.633819 -1.774693,-0.633819 z" - style="stroke-width:0.529163px" - id="path859" /> - </g> - <g - id="g1542" - transform="matrix(2,0,0,2,-0.41134438,3.175)" - style="stroke-width:1"> - <path - d="M 4.9596016,-1.0195918 C 5.3675734,1.8116029 6.8867822,3.5302649 9.983482,3.6714361 7.0655129,4.7878541 4.0581782,2.1638833 4.9596016,-1.0195918" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path943" /> - <path - d="m 3.3406657,-0.52095963 c 0.034969,-0.00777 0.038854,0.015542 0.041445,0.041445 C 3.4805417,1.3259222 4.2420891,2.6948942 5.2510098,3.6312866 6.2599306,4.5676787 7.6146558,5.3253406 9.525,5.2916667 5.9477993,6.7163303 2.1879835,3.2932527 3.3393705,-0.52095963" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path945" /> - </g> - </g> - </g> - <text - xml:space="preserve" - transform="matrix(0.26458333,0,0,0.26458333,-45.213525,-6.6039366)" - id="text4811" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:15px;font-family:'Fira Mono', 'Roboto Mono', monospace;-inkscape-font-specification:'Fira Mono, Roboto Mono, monospace, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;white-space:pre;shape-inside:url(#rect4813);fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="-248.88142" - y="0"><tspan - x="180" - y="10.85" - id="tspan2277">[MikroTik] ❌ Netwatch Notify: example.com down -</tspan><tspan - x="180" - y="25.85" - id="tspan2279"> -</tspan><tspan - x="180" - y="40.85" - id="tspan2281">The host 'example.com' (93.184.216.34) is down -</tspan><tspan - x="180" - y="55.85" - id="tspan2283">since jun/08/2021 06:55:03.</tspan></text> - </g> -</svg> diff --git a/doc/netwatch-notify.d/notification-02-up.avif b/doc/netwatch-notify.d/notification-02-up.avif Binary files differnew file mode 100644 index 0000000..9021a93 --- /dev/null +++ b/doc/netwatch-notify.d/notification-02-up.avif diff --git a/doc/netwatch-notify.d/notification-02-up.svg b/doc/netwatch-notify.d/notification-02-up.svg deleted file mode 100644 index 64e5e2d..0000000 --- a/doc/netwatch-notify.d/notification-02-up.svg +++ /dev/null @@ -1,172 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - width="493.77954" - height="113.77952" - viewBox="0 0 130.64584 30.104158" - version="1.1" - id="svg8" - inkscape:version="1.1 (c4e8f9ed74, 2021-05-24)" - sodipodi:docname="netwatch-notify-up.svg" - inkscape:export-filename="logo.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <defs - id="defs2"> - <rect - x="180" - y="0" - width="658.20044" - height="397.81946" - id="rect4813" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.52" - inkscape:cx="152.96053" - inkscape:cy="90.789474" - inkscape:document-units="px" - inkscape:current-layer="layer1" - inkscape:document-rotation="0" - showgrid="true" - units="px" - inkscape:window-width="1920" - inkscape:window-height="1047" - inkscape:window-x="0" - inkscape:window-y="33" - inkscape:window-maximized="1" - inkscape:pagecheckerboard="0" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0"> - <inkscape:grid - type="xygrid" - id="grid833" - originx="16.37501" - originy="11.083327" /> - </sodipodi:namedview> - <metadata - id="metadata5"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(16.375001,11.083333)"> - <rect - style="fill:#e6e6e6;stroke:#6c5d53;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="rect857" - width="129.64583" - height="29.10416" - x="-15.875001" - y="-10.583333" - rx="1.6205727" /> - <g - id="g884" - transform="matrix(0.5,0,0,0.5,-12.40625,-7.1145834)" - style="stroke-width:2"> - <path - sodipodi:type="star" - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264584;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path899" - sodipodi:sides="4" - sodipodi:cx="12.700001" - sodipodi:cy="12.700001" - sodipodi:r1="14.81729" - sodipodi:r2="10.477405" - sodipodi:arg1="0.78539816" - sodipodi:arg2="1.5707963" - inkscape:flatsided="true" - inkscape:rounded="0.2" - inkscape:randomized="0" - d="m 23.177407,23.177407 c -2.963458,2.963458 -17.9913546,2.963458 -20.9548127,0 -2.96345803,-2.963458 -2.96345808,-17.9913546 0,-20.9548127 2.963458,-2.96345803 17.9913547,-2.96345808 20.9548127,0 2.963458,2.963458 2.963458,17.9913547 0,20.9548127 z" /> - <g - id="g871" - style="stroke-width:2"> - <g - aria-label="#!rsc" - id="text837"> - <path - d="M 7.483197,16.645533 V 15.621671 H 6.9371377 l 0.165768,-1.277388 H 5.8255169 l -0.165768,1.277388 h -0.975106 l 0.165768,-1.277388 H 3.5730221 l -0.165768,1.277388 H 2.7051778 v 1.023862 H 3.2707393 L 3.0269628,18.517736 H 2.3443886 v 1.023861 H 2.890448 L 2.7051778,20.935999 H 3.9825666 L 4.1678368,19.541597 H 5.1429427 L 4.9576726,20.935999 H 6.2350614 L 6.4203315,19.541597 H 7.1224078 V 18.517736 H 6.5568464 l 0.2437764,-1.872203 z m -2.2037394,1.872203 h -0.975106 l 0.2437765,-1.872203 h 0.975106 z" - style="stroke-width:0.529163px" - id="path851" /> - <path - d="m 9.6186715,14.178515 h -1.638178 l 0.1950212,4.270964 h 1.2481356 z m -0.819089,5.15831 c -0.487553,0 -0.8775954,0.399794 -0.8775954,0.877596 0,0.487552 0.3900424,0.887346 0.8775954,0.887346 0.497304,0 0.8873464,-0.399794 0.8873464,-0.887346 0,-0.477802 -0.3900424,-0.877596 -0.8873464,-0.877596 z" - style="stroke-width:0.529163px" - id="path853" /> - <path - d="m 13.372827,15.61192 c -0.594815,0 -1.10187,0.429047 -1.335895,1.150625 l -0.136515,-1.004359 h -1.335895 v 5.177813 h 1.540667 v -2.603533 c 0.175519,-0.770334 0.438798,-1.228633 1.072617,-1.228633 0.165768,0 0.302283,0.02925 0.468051,0.06826 l 0.243776,-1.491912 c -0.175519,-0.04875 -0.321785,-0.06826 -0.516806,-0.06826 z" - style="stroke-width:0.529163px" - id="path855" /> - <path - d="m 16.181119,15.592418 c -1.306642,0 -2.11598,0.692326 -2.11598,1.579672 0,0.799587 0.507055,1.326144 1.530916,1.618676 0.936102,0.263278 1.092119,0.37054 1.092119,0.721578 0,0.312034 -0.282781,0.487553 -0.750832,0.487553 -0.507055,0 -0.984857,-0.204772 -1.374899,-0.507055 l -0.750832,0.838591 c 0.507055,0.4583 1.267638,0.770334 2.164736,0.770334 1.287139,0 2.30125,-0.633819 2.30125,-1.706435 0,-0.926351 -0.575313,-1.355398 -1.599174,-1.64793 -0.926351,-0.273029 -1.062866,-0.390042 -1.062866,-0.663072 0,-0.234025 0.204773,-0.390042 0.624068,-0.390042 0.448549,0 0.877595,0.146266 1.277389,0.399793 l 0.565561,-0.867844 C 17.604773,15.836195 16.93195,15.592418 16.181119,15.592418 Z" - style="stroke-width:0.529163px" - id="path857" /> - <path - d="m 21.280919,15.592418 c -1.550418,0 -2.535275,1.150625 -2.535275,2.798554 0,1.638178 0.975106,2.710795 2.564528,2.710795 0.711828,0 1.267638,-0.234026 1.74544,-0.614317 l -0.672823,-0.955604 c -0.37054,0.234026 -0.624068,0.351038 -0.994608,0.351038 -0.614317,0 -1.023861,-0.351038 -1.023861,-1.501663 0,-1.160376 0.380291,-1.608925 1.043363,-1.608925 0.351038,0 0.653321,0.117013 0.984857,0.370541 l 0.663072,-0.9166 c -0.497304,-0.419295 -1.053114,-0.633819 -1.774693,-0.633819 z" - style="stroke-width:0.529163px" - id="path859" /> - </g> - <g - id="g1542" - transform="matrix(2,0,0,2,-0.41134438,3.175)" - style="stroke-width:1"> - <path - d="M 4.9596016,-1.0195918 C 5.3675734,1.8116029 6.8867822,3.5302649 9.983482,3.6714361 7.0655129,4.7878541 4.0581782,2.1638833 4.9596016,-1.0195918" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path943" /> - <path - d="m 3.3406657,-0.52095963 c 0.034969,-0.00777 0.038854,0.015542 0.041445,0.041445 C 3.4805417,1.3259222 4.2420891,2.6948942 5.2510098,3.6312866 6.2599306,4.5676787 7.6146558,5.3253406 9.525,5.2916667 5.9477993,6.7163303 2.1879835,3.2932527 3.3393705,-0.52095963" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path945" /> - </g> - </g> - </g> - <text - xml:space="preserve" - transform="matrix(0.26458333,0,0,0.26458333,-45.213527,-6.6039376)" - id="text4811" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:15px;font-family:'Fira Mono', 'Roboto Mono', monospace;-inkscape-font-specification:'Fira Mono, Roboto Mono, monospace, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;white-space:pre;shape-inside:url(#rect4813);fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="-248.88142" - y="0"><tspan - x="180" - y="10.85" - id="tspan2242">[MikroTik] ✅ Netwatch Notify: example.com up -</tspan><tspan - x="180" - y="25.85" - id="tspan2244"> -</tspan><tspan - x="180" - y="40.85" - id="tspan2246">The host 'example.com' (93.184.216.34) is up -</tspan><tspan - x="180" - y="55.85" - id="tspan2248">since jun/08/2021 07:01:00. -</tspan><tspan - x="180" - y="70.85" - id="tspan2250">It was down for 6 checks since jun/08/2021 06:55:03.</tspan></text> - </g> -</svg> diff --git a/doc/netwatch-notify.md b/doc/netwatch-notify.md index 1352495..2db32bb 100644 --- a/doc/netwatch-notify.md +++ b/doc/netwatch-notify.md @@ -1,7 +1,14 @@ Notify on host up and down ========================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -17,8 +24,8 @@ optional parent host is not down to avoid false alerts. ### Sample notifications -![netwatch-notify notification down](netwatch-notify.d/notification-01-down.svg) -![netwatch-notify notification up](netwatch-notify.d/notification-02-up.svg) +![netwatch-notify notification down](netwatch-notify.d/notification-01-down.avif) +![netwatch-notify notification up](netwatch-notify.d/notification-02-up.avif) Requirements and installation ----------------------------- @@ -38,6 +45,12 @@ The hosts to be checked have to be added to netwatch with specific comment: /tool/netwatch/add comment="notify, name=example.com" host=[ :resolve "example.com" ]; +Also notification settings are required for +[e-mail](mod/notification-email.md), +[matrix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or +[telegram](mod/notification-telegram.md). + ### Hooks It is possible to run an up hook command (`up-hook`) or down hook command @@ -50,6 +63,9 @@ Also there is a `pre-down-hook` that fires at two thirds of failed checks required for the notification. The idea is to fix the issue before a notification is sent. +Getting the escaping right may be troublesome. Please consider adding a +script in `/system/script`, then running that from hook. + ### Count threshould The count threshould (default is 5 checks) is configurable as well: @@ -74,9 +90,9 @@ with a resolvable name: /tool/netwatch/add comment="notify, name=example.com, resolve=example.com"; -But be warned: Dynamic updates will probably cause issues if the name has -more than one record in dns - a high rate of configuration changes (and flash -writes) at least. +This supports multiple A or AAAA records for a name just fine, even a CNAME +to those. An update happens only if no more record with the configured host +address is found. ### No notification on host down @@ -88,9 +104,28 @@ powered off, but accessibility is of interest. Go and get your coffee ☕️ before sending the print job. -Also notification settings are required for e-mail, -[matrix](mod/notification-matrix.md) and/or -[telegram](mod/notification-telegram.md). +### No log on failed resolve + +A message is writting to log after three failed attemts to resolve a host. +However this can cause some noise for hosts that are expected to have +failures, for example when the name is dynamically added by +[`dhcp-to-dns`](dhcp-to-dns.md). This can be suppressed: + + /tool/netwatch/add comment="notify, name=client, resolve=client.dhcp.example.com, no-resolve-fail" host=10.0.0.0; + +### Add a note in notification + +For some extra information it is possible to add a text note. This is +included verbatim into the notification. + + /tool/netwatch/add comment="notify, name=example, note=Do not touch!" host=10.0.0.31; + +### Add a link in notification + +It is possible to add a link in notification, that is added below the +formatted notification text. + + /tool/netwatch/add comment="notify, name=example.com, resolve=example.com, link=https://example.com/"; Tips & Tricks ------------- @@ -150,5 +185,5 @@ See also * [Manage DNS and DoH servers from netwatch](netwatch-dns.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/netwatch-syslog.md b/doc/netwatch-syslog.md index 760d98f..6a337d4 100644 --- a/doc/netwatch-syslog.md +++ b/doc/netwatch-syslog.md @@ -1,34 +1,5 @@ -Manage remote logging -===================== +This script has been dropped. Filtering in firewall is advised, which should +look something like this: -[◀ Go back to main README](../README.md) - -Description ------------ - -RouterOS supports sending log messages via network to a remote syslog server. -If the server is not available no log messages (with potentially sensitive -information) should be sent. This script disables remote logging by -availability. - -Requirements and installation ------------------------------ - -Let's assume there is a remote log action and associated logging rule: - - /system/logging/action/set remote=10.0.0.1 [ find where name="remote" ]; - /system/logging/add action=remote topics=info; - -Just install the script: - - $ScriptInstallUpdate netwatch-syslog; - -... and create a netwatch matching the IP address from logging action above: - - /tool/netwatch/add down-script=netwatch-syslog host=10.0.0.1 up-script=netwatch-syslog; - -All logging rules are disabled when host is down. - ---- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) + /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; diff --git a/doc/ospf-to-leds.md b/doc/ospf-to-leds.md index 5ab5c75..121f77b 100644 --- a/doc/ospf-to-leds.md +++ b/doc/ospf-to-leds.md @@ -1,7 +1,14 @@ Visualize OSPF state via LEDs ============================= -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -33,5 +40,5 @@ instance `default` via LED `user-led` set this: /routing/ospf/instance/set default comment="ospf-to-leds, leds=user-led"; --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/packages-update.md b/doc/packages-update.md index 57f02d9..fae3896 100644 --- a/doc/packages-update.md +++ b/doc/packages-update.md @@ -1,7 +1,14 @@ Manage system update ==================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -16,8 +23,12 @@ verification. But it provides some extra functionality: +* upload backup to Mikrotik cloud if [backup-cloud](backup-cloud.md) is + installed * send backup via e-mail if [backup-email](backup-email.md) is installed -* upload backup if [backup-upload](backup-upload.md) is installed +* save configuration to fallback partition if + [backup-partition](backup-partition.md) is installed +* upload backup to server if [backup-upload](backup-upload.md) is installed * schedule reboot at night Requirements and installation @@ -30,6 +41,21 @@ Just install the script: It is automatically run by [check-routeros-update](check-routeros-update.md) if available. +Configuration +------------- + +The configuration goes to `global-config-overlay`, this is the only parameter: + +* `PackagesUpdateDeferReboot`: defer the reboot for night (between 3 AM + and 5 AM) + +By modifying the scheduler's `start-time` you can force the reboot at +different time. + +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + Usage and invocation -------------------- @@ -40,13 +66,13 @@ Alternatively run it manually: See also -------- -* [Notify on RouterOS update](check-routeros-update.md) * [Upload backup to Mikrotik cloud](backup-cloud.md) * [Send backup via e-mail](backup-email.md) -* [Save configuration to fallback partition](doc/backup-partition.md) +* [Save configuration to fallback partition](backup-partition.md) * [Upload backup to server](backup-upload.md) +* [Notify on RouterOS update](check-routeros-update.md) * [Automatically upgrade firmware and reboot](firmware-upgrade-reboot.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/ppp-on-up.md b/doc/ppp-on-up.md index 7545c5e..21847c7 100644 --- a/doc/ppp-on-up.md +++ b/doc/ppp-on-up.md @@ -1,7 +1,14 @@ Run scripts on ppp connection ============================= -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -33,5 +40,5 @@ See also * [Update tunnelbroker configuration](update-tunnelbroker.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/sms-action.md b/doc/sms-action.md index d2e3252..b4678af 100644 --- a/doc/sms-action.md +++ b/doc/sms-action.md @@ -1,7 +1,14 @@ Act on received SMS =================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -28,6 +35,10 @@ The configuration goes to `global-config-overlay`, this is the only parameter: * `SmsAction`: an array with pre-defined actions +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + Then enable SMS actions: /tool/sms/set allowed-number=+491234567890 receive-enabled=yes secret=s3cr3t; @@ -48,5 +59,5 @@ See also * [Forward received SMS](sms-forward.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/sms-forward.d/notification.avif b/doc/sms-forward.d/notification.avif Binary files differnew file mode 100644 index 0000000..01eb7ba --- /dev/null +++ b/doc/sms-forward.d/notification.avif diff --git a/doc/sms-forward.d/notification.svg b/doc/sms-forward.d/notification.svg deleted file mode 100644 index 298b43e..0000000 --- a/doc/sms-forward.d/notification.svg +++ /dev/null @@ -1,176 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - width="443.77951" - height="123.77951" - viewBox="0 0 117.41666 32.749989" - version="1.1" - id="svg8" - inkscape:version="1.1 (c4e8f9ed74, 2021-05-24)" - sodipodi:docname="sms-forward.svg" - inkscape:export-filename="logo.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <defs - id="defs2"> - <rect - x="180" - y="0" - width="658.20044" - height="397.81946" - id="rect4813" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.52" - inkscape:cx="254.27632" - inkscape:cy="90.789474" - inkscape:document-units="px" - inkscape:current-layer="layer1" - inkscape:document-rotation="0" - showgrid="true" - units="px" - inkscape:window-width="1920" - inkscape:window-height="1047" - inkscape:window-x="0" - inkscape:window-y="33" - inkscape:window-maximized="1" - inkscape:pagecheckerboard="0" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0"> - <inkscape:grid - type="xygrid" - id="grid833" - originx="16.375005" - originy="11.083326" /> - </sodipodi:namedview> - <metadata - id="metadata5"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(16.374999,11.083331)"> - <rect - style="fill:#e6e6e6;stroke:#6c5d53;stroke-width:0.999996;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="rect857" - width="116.41666" - height="31.749996" - x="-15.875001" - y="-10.583333" - rx="1.4552082" /> - <g - id="g884" - transform="matrix(0.5,0,0,0.5,-12.40625,-7.1145834)" - style="stroke-width:2"> - <path - sodipodi:type="star" - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264584;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path899" - sodipodi:sides="4" - sodipodi:cx="12.700001" - sodipodi:cy="12.700001" - sodipodi:r1="14.81729" - sodipodi:r2="10.477405" - sodipodi:arg1="0.78539816" - sodipodi:arg2="1.5707963" - inkscape:flatsided="true" - inkscape:rounded="0.2" - inkscape:randomized="0" - d="m 23.177407,23.177407 c -2.963458,2.963458 -17.9913546,2.963458 -20.9548127,0 -2.96345803,-2.963458 -2.96345808,-17.9913546 0,-20.9548127 2.963458,-2.96345803 17.9913547,-2.96345808 20.9548127,0 2.963458,2.963458 2.963458,17.9913547 0,20.9548127 z" /> - <g - id="g871" - style="stroke-width:2"> - <g - aria-label="#!rsc" - id="text837"> - <path - d="M 7.483197,16.645533 V 15.621671 H 6.9371377 l 0.165768,-1.277388 H 5.8255169 l -0.165768,1.277388 h -0.975106 l 0.165768,-1.277388 H 3.5730221 l -0.165768,1.277388 H 2.7051778 v 1.023862 H 3.2707393 L 3.0269628,18.517736 H 2.3443886 v 1.023861 H 2.890448 L 2.7051778,20.935999 H 3.9825666 L 4.1678368,19.541597 H 5.1429427 L 4.9576726,20.935999 H 6.2350614 L 6.4203315,19.541597 H 7.1224078 V 18.517736 H 6.5568464 l 0.2437764,-1.872203 z m -2.2037394,1.872203 h -0.975106 l 0.2437765,-1.872203 h 0.975106 z" - style="stroke-width:0.529163px" - id="path851" /> - <path - d="m 9.6186715,14.178515 h -1.638178 l 0.1950212,4.270964 h 1.2481356 z m -0.819089,5.15831 c -0.487553,0 -0.8775954,0.399794 -0.8775954,0.877596 0,0.487552 0.3900424,0.887346 0.8775954,0.887346 0.497304,0 0.8873464,-0.399794 0.8873464,-0.887346 0,-0.477802 -0.3900424,-0.877596 -0.8873464,-0.877596 z" - style="stroke-width:0.529163px" - id="path853" /> - <path - d="m 13.372827,15.61192 c -0.594815,0 -1.10187,0.429047 -1.335895,1.150625 l -0.136515,-1.004359 h -1.335895 v 5.177813 h 1.540667 v -2.603533 c 0.175519,-0.770334 0.438798,-1.228633 1.072617,-1.228633 0.165768,0 0.302283,0.02925 0.468051,0.06826 l 0.243776,-1.491912 c -0.175519,-0.04875 -0.321785,-0.06826 -0.516806,-0.06826 z" - style="stroke-width:0.529163px" - id="path855" /> - <path - d="m 16.181119,15.592418 c -1.306642,0 -2.11598,0.692326 -2.11598,1.579672 0,0.799587 0.507055,1.326144 1.530916,1.618676 0.936102,0.263278 1.092119,0.37054 1.092119,0.721578 0,0.312034 -0.282781,0.487553 -0.750832,0.487553 -0.507055,0 -0.984857,-0.204772 -1.374899,-0.507055 l -0.750832,0.838591 c 0.507055,0.4583 1.267638,0.770334 2.164736,0.770334 1.287139,0 2.30125,-0.633819 2.30125,-1.706435 0,-0.926351 -0.575313,-1.355398 -1.599174,-1.64793 -0.926351,-0.273029 -1.062866,-0.390042 -1.062866,-0.663072 0,-0.234025 0.204773,-0.390042 0.624068,-0.390042 0.448549,0 0.877595,0.146266 1.277389,0.399793 l 0.565561,-0.867844 C 17.604773,15.836195 16.93195,15.592418 16.181119,15.592418 Z" - style="stroke-width:0.529163px" - id="path857" /> - <path - d="m 21.280919,15.592418 c -1.550418,0 -2.535275,1.150625 -2.535275,2.798554 0,1.638178 0.975106,2.710795 2.564528,2.710795 0.711828,0 1.267638,-0.234026 1.74544,-0.614317 l -0.672823,-0.955604 c -0.37054,0.234026 -0.624068,0.351038 -0.994608,0.351038 -0.614317,0 -1.023861,-0.351038 -1.023861,-1.501663 0,-1.160376 0.380291,-1.608925 1.043363,-1.608925 0.351038,0 0.653321,0.117013 0.984857,0.370541 l 0.663072,-0.9166 c -0.497304,-0.419295 -1.053114,-0.633819 -1.774693,-0.633819 z" - style="stroke-width:0.529163px" - id="path859" /> - </g> - <g - id="g1542" - transform="matrix(2,0,0,2,-0.41134438,3.175)" - style="stroke-width:1"> - <path - d="M 4.9596016,-1.0195918 C 5.3675734,1.8116029 6.8867822,3.5302649 9.983482,3.6714361 7.0655129,4.7878541 4.0581782,2.1638833 4.9596016,-1.0195918" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path943" /> - <path - d="m 3.3406657,-0.52095963 c 0.034969,-0.00777 0.038854,0.015542 0.041445,0.041445 C 3.4805417,1.3259222 4.2420891,2.6948942 5.2510098,3.6312866 6.2599306,4.5676787 7.6146558,5.3253406 9.525,5.2916667 5.9477993,6.7163303 2.1879835,3.2932527 3.3393705,-0.52095963" - style="fill:#676867;fill-rule:evenodd;stroke-width:0.264582" - id="path945" /> - </g> - </g> - </g> - <text - xml:space="preserve" - transform="matrix(0.26458333,0,0,0.26458333,-44.965875,-6.6039357)" - id="text4811" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:15px;font-family:'Fira Mono', 'Roboto Mono', monospace;-inkscape-font-specification:'Fira Mono, Roboto Mono, monospace, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;white-space:pre;shape-inside:url(#rect4813);fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="-248.88142" - y="0"><tspan - x="180" - y="10.85" - id="tspan2204">[MikroTik] 📨 SMS Forwarding from 7277 -</tspan><tspan - x="180" - y="25.85" - id="tspan2206"> -</tspan><tspan - x="180" - y="40.85" - id="tspan2208">Received this message by MikroTik from 7277: -</tspan><tspan - x="180" - y="55.85" - id="tspan2210"> -</tspan><tspan - x="180" - y="70.85" - id="tspan2212">On Jun/12/2021 13:44:10 GMT -0 type class-0: -</tspan><tspan - x="180" - y="85.85" - id="tspan2214">Welcome to our network!</tspan></text> - </g> -</svg> diff --git a/doc/sms-forward.md b/doc/sms-forward.md index 80cb7ad..597410b 100644 --- a/doc/sms-forward.md +++ b/doc/sms-forward.md @@ -1,7 +1,14 @@ Forward received SMS ==================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -15,7 +22,7 @@ A broadband interface with SMS support is required. ### Sample notification -![sms-forward notification](sms-forward.d/notification.svg) +![sms-forward notification](sms-forward.d/notification.avif) Requirements and installation ----------------------------- @@ -31,18 +38,61 @@ Just install the script: Configuration ------------- -Notification settings are required for e-mail, -[matrix](mod/notification-matrix.md) and/or -[telegram](mod/notification-telegram.md). Also you have to enable receiving -of SMS: +You have to enable receiving of SMS: /tool/sms/set receive-enabled=yes; +The configuration goes to `global-config-overlay`, this is the only parameter: + +* `SmsForwardHooks`: an array with pre-defined hooks, where each hook consists + of `match` (which is matched against the received message), `allowed-number` + (which is matched against the sending phone number or name) and `command`. + For `match` and `allowed-number` regular expressions are supported. Actual + phone number (`$Phone`) and message (`$Message`) are available for the hook. + +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + +Notification settings are required for +[e-mail](mod/notification-email.md), +[matrix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or +[telegram](mod/notification-telegram.md). + +Tips & Tricks +------------- + +### Take care of harmful commands! + +It is easy to fake the sending phone number! So make sure you do not rely on +that number for potentially harmful commands. Add a shared secret to match +into the text instead, for example: `reboot-53cr3t-5tr1n9` instead of just +`reboot`. + +### Order new volume + +Most broadband providers include a volume limit for their data plans. The +hook functionality can be used to order new volume automatically. + +Let's assume an imaginary provider **ABC** sends a message when the available +volume is about to deplete. The message is sent from `ABC` and the text +contains the string `80%`. New volume can be ordered by sending a SMS back to +the phone number `1234` with the text `data-plan`. + + :global SmsForwardHooks { + { match="80%"; + allowed-number="ABC"; + command="/tool/sms/send lte1 phone-number=1234 message=\"data-plan\";" }; + }; + +Adjust the values to your own needs. + See also -------- * [Act on received SMS](sms-action.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/ssh-keys-import.md b/doc/ssh-keys-import.md index d83311f..d1325aa 100644 --- a/doc/ssh-keys-import.md +++ b/doc/ssh-keys-import.md @@ -1,33 +1,2 @@ -Import SSH keys -=============== - -[◀ Go back to main README](../README.md) - -Description ------------ - -This script imports public SSH keys (files with extension "`pub`") into -local store for user authentication. - -Requirements and installation ------------------------------ - -Just install the script: - - $ScriptInstallUpdate ssh-keys-import; - -Usage and invocation --------------------- - -Copy files with extension "`pub`" containing public SSH keys for your device. -Then run the script: - - /system/script/run ssh-keys-import; - -Starting with an `authorized_keys` file you can split it on a shell: - - grep -E '^ssh-rsa' authorized_keys | nl -nrz | while read num type key name; do echo $type $key $name > $num-$name.pub; done - ---- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +This script has been replaced by a module. Please see +[Import ssh keys for public key authentication](mod/ssh-keys-import.md). diff --git a/doc/super-mario-theme.md b/doc/super-mario-theme.md index 8142cda..e4bae2e 100644 --- a/doc/super-mario-theme.md +++ b/doc/super-mario-theme.md @@ -1,7 +1,14 @@ Play Super Mario theme ====================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) Description ----------- @@ -27,5 +34,5 @@ Just run the script to play: For extra fun use it for dhcp lease script. :) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/telegram-chat.d/01-chat-specific.avif b/doc/telegram-chat.d/01-chat-specific.avif Binary files differnew file mode 100644 index 0000000..ab75f78 --- /dev/null +++ b/doc/telegram-chat.d/01-chat-specific.avif diff --git a/doc/telegram-chat.d/02-chat-all.avif b/doc/telegram-chat.d/02-chat-all.avif Binary files differnew file mode 100644 index 0000000..ed1a389 --- /dev/null +++ b/doc/telegram-chat.d/02-chat-all.avif diff --git a/doc/telegram-chat.d/03-reply.avif b/doc/telegram-chat.d/03-reply.avif Binary files differnew file mode 100644 index 0000000..515853e --- /dev/null +++ b/doc/telegram-chat.d/03-reply.avif diff --git a/doc/telegram-chat.md b/doc/telegram-chat.md new file mode 100644 index 0000000..eb4acf5 --- /dev/null +++ b/doc/telegram-chat.md @@ -0,0 +1,152 @@ +Chat with your router and send commands via Telegram bot +======================================================== + +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) + +> ℹ️ **Info**: This script can not be used on its own but requires the base +> installation. See [main README](../README.md) for details. + +Description +----------- + +This script makes your device poll a Telegram bot for new messages. With +these messages you can send commands to your device and make it run them. +The resulting output is send back to you. + +Requirements and installation +----------------------------- + +Just install the script and the module for notifications via Telegram: + + $ScriptInstallUpdate telegram-chat,mod/notification-telegram; + +Then create a schedule that runs the script periodically: + + /system/scheduler/add start-time=startup interval=30s name=telegram-chat on-event="/system/script/run telegram-chat;"; + +> ⚠️ **Warning**: Make sure to keep the interval in sync when installing +> on several devices. Differing polling intervals will result in missed +> messages. + +Configuration +------------- + +Make sure to configure +[notifications via telegram](mod/notification-telegram.md) first. The +additional configuration goes to `global-config-overlay`, these are the +parameters: + +* `TelegramChatIdsTrusted`: an array with trusted chat ids or user names +* `TelegramChatGroups`: define the groups a device should belong to + +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + +Usage and invocation +-------------------- + +### Activating device(s) + +This script is capable of chatting with multiple devices. By default a +device is passive and not acting on messages. To activate it send a message +containing `! identity` (exclamation mark, optional space and system's +identity). To query all dynamic ip addresses form a device named "*MikroTik*" +send `! MikroTik`, followed by `/ip/address/print where dynamic;`. + +![chat to specific device](telegram-chat.d/01-chat-specific.avif) + +Devices can be grouped to chat with them simultaneously. The default group +"*all*" can be activated by sending `! @all`, which will make all devices +act on your commands. + +![chat to all devices](telegram-chat.d/02-chat-all.avif) + +Send a single exclamation mark or non-existent identity to make all +devices passive again. + +### Reply to message + +Let's assume you received a message from a device before, and want to send +a command to that device. No need to activate it, you can just reply to +that message. + +![reply to message](telegram-chat.d/03-reply.avif) + +Associated messages are cleared on device reboot. + +### Ask for devices + +Send a message with a single question mark (`?`) to query for devices +currenty online. The answer can be used for command via reply then. + +Known limitations +----------------- + +### Do not use numeric ids! + +Numeric ids are valid within a session only. Usually you can use something +like this to print all ip addresses and remove the first one: + + /ip/address/print; + /ip/address/remove 0; + +This will fail when sent in separate messages. Instead you should use basic +scripting capabilities. Try to print what you want to act on... + + /ip/address/print where interface=eth; + +... verify and finally remove it. + + /ip/address/remove [ find where interface=eth ]; + +What does work is using the persistent ids: + + /ip/address/print show-ids; + +The output contains an id starting with asterisk that can be used: + + /ip/address/remove *E; + +### Mind command runtime + +The command is run in background while the script waits for it - about +20 seconds at maximum. A command exceeding that time continues to run in +background, but the output in the message is missing or truncated then. + +If you still want a response you can work around this by making your code +send information on its own. Something like this should do the job: + + :global SendTelegram; + :delay 30s; + $SendTelegram "Command finished" "Your command finished..."; + +### Output size + +Telegram messages have a limit of 4096 characters. If output is too large it +is truncated, and a warning is added to the message. + +### Sending commands to a group + +Adding a bot to a group allows it to send messages to that group. To allow +it to receive messages you have to make it an admin of that group! It is +fine to deny all permissions, though. + +Also adding an admin to a group can cause the group id to change, so check +that if notifications break suddenly. + +See also +-------- + +* [Send notifications via Telegram](mod/notification-telegram.md) + +--- +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/unattended-lte-firmware-upgrade.md b/doc/unattended-lte-firmware-upgrade.md index 63f2793..6680447 100644 --- a/doc/unattended-lte-firmware-upgrade.md +++ b/doc/unattended-lte-firmware-upgrade.md @@ -1,7 +1,14 @@ Install LTE firmware upgrade ============================ -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) Description ----------- @@ -12,6 +19,7 @@ This script upgrades LTE firmware on compatible devices: * R11e-LTE-US * R11e-4G * R11e-LTE6 +* ... and more - probably what ever Mikrotik builds into their devices A temporary scheduler is created to be independent from terminal. Thus starting the upgrade process over the broadband connection is supported. @@ -42,5 +50,5 @@ See also * [Notify on LTE firmware upgrade](check-lte-firmware-upgrade.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/update-gre-address.md b/doc/update-gre-address.md index 7e87743..80902b9 100644 --- a/doc/update-gre-address.md +++ b/doc/update-gre-address.md @@ -1,7 +1,14 @@ Update GRE configuration with dynamic addresses =============================================== -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -37,5 +44,5 @@ certificate CN into the comment: /interface/gre/set comment="ikev2-client1" gre-client1; --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) diff --git a/doc/update-tunnelbroker.md b/doc/update-tunnelbroker.md index bfe8e25..2539e2f 100644 --- a/doc/update-tunnelbroker.md +++ b/doc/update-tunnelbroker.md @@ -1,7 +1,14 @@ Update tunnelbroker configuration ================================= -[◀ Go back to main README](../README.md) +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) > ℹ️ **Info**: This script can not be used on its own but requires the base > installation. See [main README](../README.md) for details. @@ -28,11 +35,10 @@ Configuration The configuration goes to interface's comment: - /interface/6to4/set comment="tunnelbroker, user=user, pass=s3cr3t, id=12345" tunnelbroker; - -Also enabling dynamic DNS in Mikrotik cloud is required: + /interface/6to4/set comment="tunnelbroker, user=user, id=12345, pass=s3cr3t" tunnelbroker; - /ip/cloud/set ddns-enabled=yes; +You should know you user name from login. The `id` is the tunnel's numeric +id, `pass` is the *update key* found on the tunnel's advanced tab. See also -------- @@ -40,5 +46,5 @@ See also * [Run scripts on ppp connection](ppp-on-up.md) --- -[◀ Go back to main README](../README.md) -[▲ Go back to top](#top) +[⬅️ Go back to main README](../README.md) +[⬆️ Go back to top](#top) |