Skript pro zálohování MikroTiku

MKA

Skript pro zálohování MikroTiku
« kdy: 21. 06. 2023, 10:31:07 »
Zdravím,
mám takovej problém se kterým si nevím rady a potřeboval bych od místní komunity pomoct.
Složením několika scriptů jsem vytvořil skript pro zálohování mikrotiku viz níže.

Skript má vytvořit zálohu mikrotiku ve formátu rsc a backup to udělá a potom OBA soubory přiložit do emailu označeném emailb a to neudělá když zedituju řádek /tool e-mail ... a místo $files dám třeba soubor test.txt , který v mikrotiku je tak se emailem pošle, pokud zkusím vložit dva soubory tak se nepošle. Nevíte kde dělám chybu? Jinak skript je z většiny napsaný mnou ale nejsem ani nahodou programátor, pokud někdo bude chtít klidně si ho zkopírujte a dávám ho volně k dispozici.

Mockrát děkuju za pomoc !!

Kód: [Vybrat]
########## script for automatic backup to ftp v 2.0
:local date [/system clock get date]
:local day [:pick $date 4 6]

# notification e-mail
:local emailn "notifikacni email"

# backup e-mail
:local emailb "email pro zalohovani"

# months array
:local months ("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");

# get time
:local ts [/system clock get time]
:set ts ([:pick $ts 0 2].[:pick $ts 3 5].[:pick $ts 6 8])

# get Date
:local ds [/system clock get date]
# convert name of month to number
:local month [ :pick $ds 0 3 ];
:local mm ([ :find $months $month -1 ] + 1);
:if ($mm < 10) do={ :set mm ("0" . $mm); }
# set $ds to format YYYY-MM-DD
:set ds ([:pick $ds 7 11] . $mm . [:pick $ds 4 6])

# file name for system backup - file name will be Date-time-identity.backup
:local fname1 ("/".$ds."-".$ts."-".[/system identity get name].".backup")
# file name for config export - file name will be Date-time-identity.rsc
:local fname2 ("/".$ds."-".$ts."-".[/system identity get name].".rsc")

/system backup save name=$fname1
:log info message="auto_backup: System backup finished (1/2).";
/export compact file=$fname2
:log info message="auto_backup: Config export finished (2/2)."

:local files {$backupconf;$backuplog}

# send system backup to email
 :local files  {$fname1;$fname2}
 /tool e-mail send to="$emailb" subject="$[/system identity get name] - Auto Backup firmware" body="Backup files attached in this email."  file=$files



:log info message="auto_backup: Sending email backup complete."

# delay time to finish the upload - increase it if your backup file is big
:delay 1s;
# find file name start with -then remove
:foreach i in=[/file find] do={ :if ([:typeof [:find [/file get $i name] [/system identity get name]]]!="nil") do={/file remove $i}; }
:log info message="auto_backup: Configuration backup finished.";

:delay 1s;
 /tool e-mail send to="$emailn" subject="$[/system identity get name] - Auto Backup firmware is finished" body="Automatic backup was completed. The backup send to $emailb."
:log info message="auto_backup: Send email about job completion."
}
« Poslední změna: 21. 06. 2023, 10:44:57 od Petr Krčmář »


Re:Skript pro zálohování MikroTiku
« Odpověď #1 kdy: 21. 06. 2023, 11:03:41 »
Knowhow ceny zlata: Před odeslání mailu dát sleep. Backup i export se generuje docela dlouho a ta volání nejsou blokující.

Medo77

  • ****
  • 303
    • Zobrazit profil
    • E-mail
Re:Skript pro zálohování MikroTiku
« Odpověď #2 kdy: 21. 06. 2023, 11:13:35 »
1. Nakonfigurovany email - Tools - Email
2. System -Identity - nejako si ho rozumne nazvi (vid premennu v skripte)
3. System  - scripts -
Dont require permissions, a Dude. ostatne zafajknute. Nazov napr. Backup (vid bod 4)
---
:global backupfile ([/system identity get name] . "-" . [/system clock get time])

/system backup save name=$backupfile
:delay 12s
/tool e-mail send to="1_mail" cc="2_mail" subject=("Backup" [/system identity get name] . "-" . [/system clock get date] . "-" ."Backup binarka" )  file=$backupfile
:delay 10s
:log info "Deleting file from MT"
/file remove "$backupfile"



:global backupfile ([/system identity get name] . "-" . [/system clock get time])
/export compact file=$backupfile
:delay 12s
/tool e-mail send to="1_mail" cc="2_mail" subject=("Backup" [/system identity get name] . "-" . [/system clock get date] . "-" ."Backup export" )  file=$backupfile
:delay 10s
:log info "Deleting file from MT"
/file remove "$backupfile"

----------
4. System -scheduler - nejaka nova udalost -
Start date, start time, (14:00)  interval (1d 00:00:00), dni v tyzdni, vsetko okrem dude,
vykonat: /system script run backup

Casovac v zvolenom case posle binarku aj txt export do mailu.

MKA

Re:Skript pro zálohování MikroTiku
« Odpověď #3 kdy: 21. 06. 2023, 11:43:39 »
Dekuju Medo77
jenze tvuj script mi posle na email pouze sobor s formatem backup ja potrebuju do jednoho emailu format backup a rsc viz .  muj kod. Asi na to jdu uplne spatne ale potreboval bych kudy vedet cesta.

Jeste jednou dik vsem za snahu

Kód: [Vybrat]
# file name for system backup - file name will be Date-time-identity.backup
:local fname1 ("/".$ds."-".$ts."-".[/system identity get name].".backup")
# file name for config export - file name will be Date-time-identity.rsc
:local fname2 ("/".$ds."-".$ts."-".[/system identity get name].".rsc")

/system backup save name=$fname1
:log info message="auto_backup: System backup finished (1/2).";
/export compact file=$fname2
:log info message="auto_backup: Config export finished (2/2)."

# send system backup to email
 :local files  {$fname1;$fname2}
 /tool e-mail send to="$emailb" subject="$[/system identity get name] - Auto Backup firmware" body="Backup files attached in this email."  file=$files

Medo77

  • ****
  • 303
    • Zobrazit profil
    • E-mail
Re:Skript pro zálohování MikroTiku
« Odpověď #4 kdy: 21. 06. 2023, 12:04:35 »
Ten skript robi urcite export aj RSC.... Co nerobi, ze to neposle v jednom emali ale dvoch .. Priznam sa, ze som to neskusal, isto by to malo, pouzivame to tak, ako som to popisal.

Skus prikaz na export jedneho formatu, pauza, druhy, pauza, a poslat ...
Staci to zgrupit do jedneho skriptu a pozmenu premennu jedneho z nich

/system backup save name=$backupfile
:delay 12s
/export compact file=$backupfile1
:delay 12s
/tool e-mail send to="1_mail" cc="2_mail" subject=("Backup" [/system identity get name] . "-" . [/system clock get date] . "-" ."Backup" )  file=$backupfile; $backupfile1

https://wiki.mikrotik.com/wiki/Manual:Tools/email
file (File[,File]; Default: )   List of the file names that will be attached to the mail separated by comma.


MKA

Re:Skript pro zálohování MikroTiku
« Odpověď #5 kdy: 21. 06. 2023, 12:18:31 »
Zkusil jsem, soubory se vyexporotovali, ale jakmile dojde k odeslání emailu tak se nic neodešle, na nápovědu od mikrotiku jsem právě koukal před tím než jsem sem psal ale moudrej jsem z toho nebyl a co tam bylo to jsem zkusil a nefungovalo to, někde musím dělat pitomou chybu.

Posílám upravej script podle tvého návodu, bohužel bez úspěchu.

Kód: [Vybrat]

# file name for system backup - file name will be Date-time-identity.backup
:local fname1 ("/".$ds."-".$ts."-".[/system identity get name].".backup")
# file name for config export - file name will be Date-time-identity.rsc
:local fname2 ("/".$ds."-".$ts."-".[/system identity get name].".rsc")

/system backup save name=$fname1
:delay 12s
:log info message="auto_backup: System backup finished (1/2).";
/export compact file=$fname2
:delay 12s
:log info message="auto_backup: Config export finished (2/2)."

# send system backup to email
 /tool e-mail send to="$emailb" subject="$[/system identity get name] - Auto Backup firmware" body="Backup files attached in this email."  file=$fname1; $fname2

Medo77

  • ****
  • 303
    • Zobrazit profil
    • E-mail
Re:Skript pro zálohování MikroTiku
« Odpověď #6 kdy: 21. 06. 2023, 13:11:41 »
Skus ist cestou vyhradeneho precinka, a vsetko z neho
https://forum.mikrotik.com/viewtopic.php?t=40650

vfko

Re:Skript pro zálohování MikroTiku
« Odpověď #7 kdy: 21. 06. 2023, 14:32:58 »
Umožňuje Mikrotik vůbec odeslat dva soubory najednou? Když odešlu dva soubory ručně přes terminál, vrátí mi to chybu:

Kód: [Vybrat]
ambiguous value of file, more than one possible value matches input

Medo77

  • ****
  • 303
    • Zobrazit profil
    • E-mail
Re:Skript pro zálohování MikroTiku
« Odpověď #8 kdy: 21. 06. 2023, 14:57:18 »
Na to som prave naraz s predch. prispevkom, chalani s tym tiez bojovali, ale jeden to podla vsetkeho zlomil poslanim vsetkeho co je vo zvolenom precinku ...

MKA

Re:Skript pro zálohování MikroTiku
« Odpověď #9 kdy: 21. 06. 2023, 15:49:45 »
Děkuju všem za odpovědi a snahu můj problém vyřešit.

Co se týče posledního příspěvku a odkazu na fóra mikrotiku. Tak přesně tenhle kód jsem zkoušel to vše ještě předtím než jsem sem napsal.

Kód: [Vybrat]
:local files {$backupconf;$backuplog}
/tool e-mail send to="vvs@somewhere.com" subject="$[/system identity get name]-$[/system clock get time] Backup Configuration & Log - SBB-Optic" file=$files

respektive v mé úpravě

Kód: [Vybrat]
# file name for system backup - file name will be Date-time-identity.backup
:local fname1 ("/".$ds."-".$ts."-".[/system identity get name].".backup")
# file name for config export - file name will be Date-time-identity.rsc
:local fname2 ("/".$ds."-".$ts."-".[/system identity get name].".rsc")

/system backup save name=$fname1
:log info message="auto_backup: System backup finished (1/2).";
/export compact file=$fname2
:log info message="auto_backup: Config export finished (2/2)."

:local files {$fname1;$fname2}

# send system backup to email
/tool e-mail send to="$emailn" subject="$[/system identity get name] - Auto Backup firmware" body="Backup files attached in this email" file=$files
:log info message="auto_backup: Sending email backup complete."

Děkuji všem za nápady!


Re:Skript pro zálohování MikroTiku
« Odpověď #10 kdy: 21. 06. 2023, 15:58:12 »
Já to mám nějak takto.

#

:local email "nejaky@email.cz"

/export show-sensitive file=zaloha
:delay 2s
/system backup save name=zaloha
:delay 2s
:local date [/system clock get date]
:local time [/system clock get time]
:local info [/system identity get name]
:local serial [/system routerboard get serial-number]

:local files "zaloha.rsc,zaloha.backup"
/tool e-mail send to="$email" subject="Mikrotik: Zaloha $info $serial" file=$files body="Automaticka zaloha $info $serial at $date $time."
:delay 20s
/file remove zaloha.rsc
/file remove zaloha.backup
/log info "Backup e-mail sent."


Pokud chceš s heslem uprav na
/system backup save password=nejaketajneheslo encryption=aes-sha25 name=zaloha;

Export bez uložených hesel.
odstranit show-sensitive
Happy FreeBSD user! 😊🚀
Proudly using FreeBSD every day!

MKA

Re:Skript pro zálohování MikroTiku
« Odpověď #11 kdy: 22. 06. 2023, 14:33:42 »
ArmorCZ mockrát děkuju, to je přesně to co jsem hledal, zbytek si už upravím.

Všem děkuju za pomoc.