{{tag>mikrotik scripts }} ===== Scripts ===== Podemos crear diferentes scripts para que se ejecuten manualmente o a una hora determinada . Para crear scripts vamos a /System/Scripts Podemos encontrar muchos ejemplos de scripts en https://www.adslzone.net/foro/mikrotik.199/manual-mikrotik-coleccion-scripting.575217/ ==== Permisos ==== **Permisos disponibles** para los scripts. No todos son necesarios: * **ftp** - Acceder remotamente a un ftp y enviar y recibir ficheros desde el router * **password** - cambiar contraseñas * **policy** - gestionar políticas de usuario, añadir y eliminar usuarios * **read** - leer la configuración del router * **reboot** - reiniciar el router * **sensitive** - permite cambiar parámetros “hide sensitive” * **sniff** - puede ejecutar sniffer, torch etc… * **test** - puede ejecutar ping, traceroute, bandwidth test… * **write** - puede cambiar la configuración ==== Ejecutar un script desde la terminal ==== /system script run nombre_script Para ver el resultado de un comando desde la terminal anteponer **:put** por ejemplo: :put [/ip cloud get public-address]  ==== Scripts de ejemplo ==== === Enviar correo === /tool e-mail send to="luiscarlos@ejemplo.com" subject="$[/system identity get name]" body="Prueba correo automático mikrotik" === Backup por Correo === :local DeviceName [/system identity get name]; /system backup save dont-encrypt=yes name=$DeviceName; :delay 3; /export file=$DeviceName; :delay 3; /tool e-mail send to="luiscarlos@ejemplo.com" subject="$DeviceName" file="$DeviceName.backup,$DeviceName.rsc"; :delay 10; /file remove "$DeviceName.backup"; /file remove "$DeviceName.rsc"; Si queremos que este script se ejecute, por ejemplo, cada 7 días . Vamos a /System/Scheduler y añadimos un evento y ponemos en el cuerpo del evento el nombre que le dimos al script {{:hardware:mikrotik:pasted:20230224-120120.png}} === WoL === Para encender un ordenador en remoto que tengamos conectado al Mikrotik, creamos el siguiente script y ponemos la MAC correspondiente al equipo que vamos a encender /tool wol interface=bridge1 mac=88:AE:DD:06:50:CB === Enviar estado del Mikrotik === :local uptime [/system resource get uptime]; #:local CurrentTemp [/system health get [find name=temperature] value]; :local FreeMemory ([/system resource get free-memory] / 1024 / 1024); :local TotalMemory ([/system resource get total-memory] / 1024 / 1024); :local cpu [/system resource get cpu]; :local cpuCount [/system resource get cpu-count]; :local cpuFrequency [/system resource get cpu-frequency]; :local cpuLoad [/system resource get cpu-load]; :local freeHdd ([/system resource get free-hdd-space] / 1024 / 1024); :local totalHdd ([/system resource get total-hdd-space] /1024 / 1024); :local architectureName [/system resource get architecture-name]; :local boardName [/system resource get board-name]; :local version [/system resource get version]; :local DeviceName [/system identity get name]; # START Send Email /tool e-mail send to="tucorreo@tucorreo.com" from=$DeviceName subject="\F0\9F\9A\80 $DeviceName System Status" body="IPv4: $ipv4\nIPv6: $ipv6\n\nTemp: $CurrentTemp C\nUptime: $uptime\nFree Memory: $FreeMemory MB\nTotal Memory: $TotalMemory MB\nCPU: $cpu\nCPU Count: $cpuCount\nCPU Frequency: $cpuFrequency MHz\nCPU Load: $cpuLoad %\nFree Disk: $freeHdd MB\nTotal Disk: $totalHdd MB\nArchitecture: $architectureName\nBoard Name: $boardName\nSoftware Version: $version" # END Send Email :log info "Sent Email: WAN IP & System Status" :log info "Sent Telegram: WAN IP & System Status" ==== Referencias ==== * https://bandalibre.es/configuracion-de-scripts-y-automatizaciones-en-mikrotik/ * https://www.raulprietofernandez.net/blog/mikrotik/como-enviar-mensajes-desde-mikrotik-y-routeros-a-telegram