Script Extras

Variables para informe


:global human do={

:if ([:typeof $1]="nothing") do={

:error "must provide a byte value to humanize";

};

:local input [:tonum $1];

:if ([:typeof $input]!="num") do={

:error "cannot convert $1 to number";

};

:local q;

:local r;

:local output;

:if ($input<1024) do={

:set $output "$input B";

} else={

:if ($input<1048576) do={

:set q ($input/1024);

:set r ($input-$q*1024);

:set r ($r/102);

:set output "$q.$r KiB";

} else={

:if ($input<1073741824) do={

:set q ($input/1048576);

:set r ($input-$q*1048576);

:set r ($r/104858);

:set output "$q.$r MiB"

} else={

:set q ($input/1073741824);

:set r ($input-$q*1073741824);

:set r ($r/107374182);

:set output "$q.$r GiB"

}

}

}

:return $output

};

***********************************************************************************************************

Informe

# Llamada a la nueva variable global

:global human


:local ipv4 [/ip cloud get public-address];

:local ipv6 [/ip cloud get public-address-ipv6];

: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];

# nuevas variables

:local txtotal [$human [/interface get [find name=pppoe-out1] tx-byte]];

:local rxtotal [$human [/interface get [find name=pppoe-out1] rx-byte]];

:local sumtotal [$human ([/interface get pppoe-out1 tx-byte]+[/interface get pppoe-out1 rx-byte])];

:local txtotal [$human [/interface get [find name=pppoe-out1] tx-byte]];

:local rxtotal [$human [/interface get [find name=pppoe-out1] rx-byte]];

:local sumtotal [$human ([/interface get pppoe-out1 tx-byte]+[/interface get pppoe-out1 rx-byte])];



# START Send Email

/tool e-mail send to="micuenta@gmail.com" from="Mikrotik Despacho" 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\n\nConsumo total:\nDescarga: $rxtotal\nSubida: $txtotal\nTotal: $sumtotal"

# END Send Email


# START Send Telegram Module

:local MessageText "\F0\9F\9A\80 $DeviceName System Status:%0AIPv4: $ipv4%0AIPv6: $ipv6%0ATemperature: $CurrentTemp %C2%B0 C%0AUptime: $uptime%0AFree Memory: $FreeMemory MB%0ATotal Memory: $TotalMemory MB%0ACPU Load: $cpuLoad %%0ACPU: $cpu%0ACPU Count: $cpuCount%0ACPU Frequency: $cpuFrequency MHz%0AArchitecture: $architectureName%0ABoard Name: $boardName%0ASoftware Version: $version%0AFree Disk: $freeHdd MB%0ATotal Disk: $totalHdd MB%0A----%0A<b><i>Consumo total:</i></b>%0ADescarga: $rxtotal%0ASubida: $txtotal%0ATotal: $sumtotal";

:local SendTelegramMessage [:parse [/system script get MyTGBotSendMessage source]];

$SendTelegramMessage MessageText=$MessageText;

#END Send Telegram Module


:log info "Sent Email: WAN IP & System Status"

:log info "Sent Telegram: WAN IP & System Status"



********************************************Informe DHCP *************************************


:local time [/system clock get time];

:local date [/system clock get date];

:local DeviceName [/system identity get name];

:local i;

:local hostip;

:local hostname;

:local dhcplist "";

:local leasesall [ :len [ /ip dhcp-server lease find where server="PONER AQUÍ EL NOMBRE DE TU SERVIDOR DHCP" ] ];

:local firmware [ /system routerboard get current-firmware ];

:local routeros [ /system package get number=0 value-name=version ];

:local macaddress;


/ip dhcp-server lease;

:foreach i in=[find where server="PONER AQUÍ EL NOMBRE DE TU SERVIDOR DHCP"] do={

:set hostname [get $i host-name];

:set hostip [get $i address];

:set macaddress [get $i active-mac-address];

:set dhcplist ($dhcplist . $hostname . " " . $hostip . " ". $macaddress . "\n");

};


# START Send Email

/tool e-mail send to="tucorreogmail@gmail.com" subject="\E2\84\B9 $DeviceName: DHCP Leases [$date - $time]" body="Total DHCP leases: $leasesall\n\nFirmware: $firmware\nRouterOS: $routeros\n\n$dhcplist" file="";

# END Send Email


/log info "DHCP Leases sent via email"