MikroTik Scripts Scheduler Email FTP backup

Witam, postanowiłem odnowić artykuł o backupie który zostaje wysyłany na adres email. Z racji doświadczenia które nabywam każdego dnia opracowałem skrypt który może być wykonywany kiedy chcecie poprzez scheduler.

Skrypty które napisałem które dostępne są poniżej automatyzują działanie MikroTika wysyłając jego konfiguracje na adres e-mail oraz na serwer ftp. Dodatkowo jest skrytp który wysyła informacje o napięciu i temperaturze. Jest to bardzo przydatne jak mamy urządzenie które pracuje tylko na akumulatorach, i chcemy wiedzieć jaki jest poziom naładowania aku jeżeli miktorik oczywiście obsługuje tą niezbędną funkcje.

Na początek zaczniemy od skryptu który wysyła backup konfiguracji na adres e-mail, jeden skrypt wysyła pliki export.rsc, export_compact.rsc oraz backup.backup. Przywracanie konfiguracji na urządzeniu opisane jest tutaj.

Logujemy się do MikroTika i z menu bocznego wybieramy New Terminal. I tu właśnie wklejamy kod poniżej:

/system script
add dont-require-permissions=no name=EmailPGkOmP owner=admin policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive source=":log in\
    fo \"Starting Automatic Backup Email Script Configure By PGKOMP.PL\"\r\
    \n:global thisdate [/system clock get date]\r\
    \n:global datetimestring ([:pick \$thisdate 4 6] .\"-\" . [:pick \$thisdat\
    e 0 3] .\"-\" . [:pick \$thisdate 7 11])\r\
    \n:global voltage [/system health get voltage]\r\
    \n\r\
    \n:log info \"Backup Please wait...!!!\"\r\
    \n/system backup save name=\"\$[/system identity get name]_\$datetimestrin\
    g\"\r\
    \n:delay 2s\r\
    \n:log info \"Export Compact Please wait...!!!\"\r\
    \n/export compact file=\"\$[/system identity get name]_\$datetimestring-co\
    mpact\" \r\
    \n:delay 2s\r\
    \n:log info \"Export Please wait...!!!\"\r\
    \n/export file=\"\$[/system identity get name]_\$datetimestring\" \r\
    \n:delay 2s\r\
    \n:log info \"Log Print Please wait...!!!\"\r\
    \n/log print file=\"\$[/system identity get name]_\$datetimestring.txt\"\r\
    \n:delay 5s\r\
    \n:log info \"Sending Backup Mikrotik to Email Address.............\"\r\
    \n/tool e-mail send file=\"\$[/system identity get name]_\$datetimestring.\
    backup\" to=spam@pgkomp.pl subject=\"\$[/ip address get 0] \$[/system iden\
    tity get name] \$[/system clock get time] \$[/system clock get date]\" bod\
    y=\"\$[/system identity get name] backup konfiguracji /backup. \\n \\nUpti\
    me: \$[/system resource get uptime]\\nVersion: \$[/system resource get ver\
    sion] \\nBad Blocks: \$[/system resource get bad-blocks] \\nArchitecture N\
    ame: \$[/system resource get architecture-name] \\nBoard Name: \$[/system \
    resource get board-name] \\n\\nVoltage: \$([:pick \$voltage 0 2] . \".\" .\
    \_[:pick \$voltage 2 3]) V\\nTemperature: \$[/system health get temperatur\
    e] C\"\r\
    \n:delay 1s\r\
    \n:log info \"Sending Export Compact Mikrotik to Email Address............\
    .\"\r\
    \n/tool e-mail send file=\"\$[/system identity get name]_\$datetimestring-\
    compact.rsc\" to=spam@pgkomp.pl subject=\"\$[/ip address get 0] \$[/system\
    \_identity get name] \$[/system clock get time] \$[/system clock get date]\
    \" body=\"\$[/system identity get name] backup konfiguracji /export compac\
    t.  \\n \\nUptime: \$[/system resource get uptime]\\nVersion: \$[/system r\
    esource get version] \\nBad Blocks: \$[/system resource get bad-blocks] \\\
    nArchitecture Name: \$[/system resource get architecture-name] \\nBoard Na\
    me: \$[/system resource get board-name] \\n\\nVoltage: \$([:pick \$voltage\
    \_0 2] . \".\" . [:pick \$voltage 2 3]) V\\nTemperature: \$[/system health\
    \_get temperature] C\"\r\
    \n:delay 1s\r\
    \n:log info \"Sending Export Mikrotik to Email Address.............\"\r\
    \n/tool e-mail send file=\"\$[/system identity get name]_\$datetimestring.\
    rsc\" to=spam@pgkomp.pl subject=\"\$[/ip address get 0] \$[/system identit\
    y get name] \$[/system clock get time] \$[/system clock get date]\" body=\
    \"\$[/system identity get name] backup konfiguracji /export compact.  \\n \
    \\nUptime: \$[/system resource get uptime]\\nVersion: \$[/system resource \
    get version] \\nBad Blocks: \$[/system resource get bad-blocks] \\nArchite\
    cture Name: \$[/system resource get architecture-name] \\nBoard Name: \$[/\
    system resource get board-name] \\n\\nVoltage: \$([:pick \$voltage 0 2] . \
    \".\" . [:pick \$voltage 2 3]) V\\nTemperature: \$[/system health get temp\
    erature] C\"\r\
    \n:delay 1s\r\
    \n:log info \"Sending Log Mikrotik to Email Address.............\"\r\
    \n/tool e-mail send file=\"\$[/system identity get name]_\$datetimestring.\
    txt\" to=spam@pgkomp.pl subject=\"\$[/ip address get 0] \$[/system identit\
    y get name] \$[/system clock get time] \$[/system clock get date]\" body=\
    \"\$[/system identity get name] Log \$[/system identity get name] \$[/syst\
    em clock get date] \\n \\nUptime: \$[/system resource get uptime]\\nVersio\
    n: \$[/system resource get version] \\nBad Blocks: \$[/system resource get\
    \_bad-blocks] \\nArchitecture Name: \$[/system resource get architecture-n\
    ame] \\nBoard Name: \$[/system resource get board-name] \\n\\nVoltage: \$(\
    [:pick \$voltage 0 2] . \".\" . [:pick \$voltage 2 3]) V\\nTemperature: \$\
    [/system health get temperature] C\"\r\
    \n:delay 5s\r\
    \n:log info \"Deleting Backup Files........\"\r\
    \n/file remove \"\$[/system identity get name]_\$datetimestring.rsc\"\r\
    \n/file remove \"\$[/system identity get name]_\$datetimestring-compact.rs\
    c\"\r\
    \n/file remove \"\$[/system identity get name]_\$datetimestring.backup\"\r\
    \n/file remove \"\$[/system identity get name]_\$datetimestring.txt\"\r\
    \n:log info message=\"Successfully removed Temporary Backup Files\"\r\
    \n:delay 1s\r\
    \n:log info \"Finished Email Backup Script...!!!! by PGKOMP.PL\""

Aby skrypt zadziałał należy go delikatnie zmodyfikować, zmienić adres e-mail na taki na który chcecie otrzymywać plik z backupem.

Kolejny skrypt to backup na serwer FTP. MikroTik wykonuje backup wysyła na ftp a następnie kasuje ze swojej pamięci.

/system script
add dont-require-permissions=no name=FTPEmailPGkOmP owner=admin policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive source=":log in\
    fo \"Starting Automatic Backup Script Configure By PGKOMP.PL\"\r\
    \n:global thisdate [/system clock get date]\r\
    \n:global datetimestring ([:pick \$thisdate 4 6] .\"-\" . [:pick \$thisdat\
    e 0 3] .\"-\" . [:pick \$thisdate 7 11])\r\
    \n\r\
    \n:log info \"Backup Please wait...!!!\"\r\
    \n/system backup save name=\"\$[/system identity get name]_\$datetimestrin\
    g\" \r\
    \n:log info \"Export Compact Please wait...!!!\"\r\
    \n/export compact file=\"\$[/system identity get name]_\$datetimestring-co\
    mpact\" \r\
    \n:log info \"Export Please wait...!!!\"\r\
    \n/export compact file=\"\$[/system identity get name]_\$datetimestring\" \
    \r\
    \n:delay 5s\r\
    \n:log info \"Sending Backup Mikrotik to FTP Server.............\"\r\
    \n/tool fetch address=[adres serwera ftp] src-path=\"\$[/system identity g\
    et name]_\$datetimestring.backup\" user=[nazwa uzytkownika] password=[hasl\
    o] port=21 upload=yes ascii=no mode=ftp dst-path=\"/backup/\$[/system iden\
    tity get name]_\$datetimestring.backup\"\r\
    \n:log info \"Sending Export Compact Mikrotik to FTP Server.............\"\
    \r\
    \n/tool fetch address=[adres serwera ftp] src-path=\"\$[/system identity g\
    et name]_\$datetimestring.rsc\" user=[nazwa uzytkownika] password=[haslo] \
    port=21 upload=yes ascii=no mode=ftp dst-path=\"/backup/\$[/system identit\
    y get name]_\$datetimestring-compact.rsc\"\r\
    \n:log info \"Sending Export Mikrotik to FTP Server.............\"\r\
    \n/tool fetch address=[adres serwera ftp] src-path=\"\$[/system identity g\
    et name]_\$datetimestring.rsc\" user=[nazwa uzytkownika] password=[haslo] \
    port=21 upload=yes ascii=no mode=ftp dst-path=\"/backup/\$[/system identit\
    y get name]_\$datetimestring.rsc\"\r\
    \n:delay 5s\r\
    \n:log info \"Deleting Backup Files........\"\r\
    \n/file remove \"\$[/system identity get name]_\$datetimestring.rsc\"\r\
    \n/file remove \"\$[/system identity get name]_\$datetimestring-compact.rs\
    c\"\r\
    \n/file remove \"\$[/system identity get name]_\$datetimestring.backup\"\r\
    \n:log info message=\"Successfully removed Temporary Backup Files\"\r\
    \n:delay 1s\r\
    \n:log info \"Finished FTP Backup Script...!!!! by PGKOMP.PL\""

W powyższym skrypcie trzeba podmienić adres sertea ftp, nazwe użytkownika oraz hasło na własne.

Kolejny skrypt i myślę że najbardziej ciekawy wysyła poziom energi Voltage oraz poziom temperatury co jedną godzinę.

/system scripts
add dont-require-permissions=no name=Voltage&TemperaturePGkOmP owner=admin \
    policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive source="\
    :log info \"Starting Automatic Voltage & Temperature Email Script Configur\
    e By PGKOMP.PL\"\r\
    \n:global thisdate [/system clock get date]\r\
    \n:global datetimestring ([:pick \$thisdate 4 6] .\"-\" . [:pick \$thisdat\
    e 0 3] .\"-\" . [:pick \$thisdate 7 11])\r\
    \n:global voltage [/system health get voltage]\r\
    \n\r\
    \n:log info \"Sending Voltage & Temperature Mikrotik to Email Address.....\
    ........\"\r\
    \n/tool e-mail send to=[email odbiorcy] subject=\"\$[/ip address get 0] \$\
    [/system identity get name] \$[/system clock get time] \$[/system clock ge\
    t date]\" body=\"Addresses: \\n0:\$[/ip address get 0 address], \\n1:\$[/i\
    p address get 1 address], \\n2:\$[/ip address get 2 address] \\n \\nVoltag\
    e: \$([:pick \$voltage 0 2] . \".\" . [:pick \$voltage 2 3]) V\\nTemperatu\
    re: \$[/system health get temperature] C \\n \\nUptime: \$[/system resourc\
    e get uptime]\\n\\nVersion: \$[/system resource get version]\\n\\ncpu-load\
    : \$[/system resource get cpu-load]\"\r\
    \n:delay 2s\r\
    \n:log info \"Finished Voltage & Temperature Email Script...!!!! by PGKOMP\
    .PL\""

Aby skrypt działał konieczne jest uzupełnienie własnych adresów e-mail.

W jaki sposób skonfigurować adres e-mail na MikroTiku?

Wystarczy w New Terminal wydać polecenie:

/tool e-mail
set address=[adres serwera smtp] from=[adres email] password=[haslo] user=\
    [nazwa uzytkownika]

Oczywiście należy uzupełnić adres e-mail hasło oraz adres serwera smtp.

Miałem sporo pytań mailowych w tym temacie, wiec opisuje krok po kroku co i jak zrobić. Kolejny wpis wreszcie wasze oczekiwane VLAN.

2 komentarze do “MikroTik Scripts Scheduler Email FTP backup

  1. Wiedza w Blogach

    Fajnego masz bloga i ciekawe na nim treści czy na serwerze wszystko sie zmieści ? pięknie frazujesz słowa zmuszasz przy tym do myślenia tym komentarzem życzę powodzenia :)

    Odpowiedz

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *