Last active
March 26, 2024 21:50
-
-
Save elico/4dc496842947d6176ddc83b9638a64c2 to your computer and use it in GitHub Desktop.
RouterOS v7 hardware appliance email backup script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
:do { | |
:log info "STARTING BACKUP process"; | |
:local customerNumber "Ac3_Cust.no_1"; | |
:local boardSerial [/system/routerboard/get serial-number]; | |
:local sendMail true; | |
:local uploadFile false; | |
:local mailServer "smtp.gmail.com"; | |
:local fromLine "example company MT Router"; | |
:local mailServerSubmissioPort 587; | |
:local emailUsername "[email protected]"; | |
:local emailPassword "veryStrongPassword"; | |
:local recipient "[email protected]"; | |
:local uploadUrl "https://test:[email protected]/upload.php"; | |
:log info "Configuring email settings"; | |
:if ($sendMail = true) do={ | |
/tool/e-mail set server=$mailServer from=$fromLine port=$mailServerSubmissioPort tls=no user=$emailUsername password=$emailPassword; | |
} | |
:log info "GENERATING backup file"; | |
:local backupfile ($customerNumber . "_" . $boardSerial . ".backup"); | |
/system/backup/save name=$backupfile dont-encrypt=yes; | |
:delay 1s; | |
:if ($sendMail = true) do={ | |
:local subject "$customerNumber - $boardSerial - backup file"; | |
/tool/e-mail/send from=$emailUsername to=$recipient subject=$subject file=$backupfile; | |
:delay 1s; | |
} | |
:log info "GENERATING RSCs"; | |
:log info "GENERATING generic export RSC"; | |
:local rscGeneric ($customerNumber . "_" . $boardSerial . "_generic.rsc"); | |
/export file=$rscGeneric show-sensitive; | |
:delay 1s; | |
:if ($sendMail = true) do={ | |
:local subject "$customerNumber - $boardSerial - rscGeneric backup file"; | |
/tool/e-mail/send from=$emailUsername to=$recipient subject=$subject file=$rscGeneric; | |
:delay 1s; | |
} | |
:if ($uploadFile = true) do={ | |
:local data [/file/get [/file/find name=$rscGeneric] contents]; | |
/tool/fetch url="$uploadUrl?ext=rsc&id=$boardSerial&type=generic&cust=$customerNumber" http-method=put http-data=$data output=none ; | |
:delay 1s; | |
} | |
:log info "GENERATING verobse export RSC"; | |
:local rscVerbose ($customerNumber . "_" . $boardSerial . "_verbose.rsc"); | |
/export file=$rscVerbose verbose show-sensitive; | |
:delay 1s; | |
:if ($sendMail = true) do={ | |
:local subject "$customerNumber - $boardSerial - rscVerbose backup file"; | |
/tool/e-mail/send from=$emailUsername to=$recipient subject=$subject file=$rscVerbose; | |
:delay 1s; | |
} | |
:if ($uploadFile = true) do={ | |
:local data [/file/get [/file/find name=$rscVerbose] contents]; | |
/tool/fetch url="$uploadUrl?ext=rsc&id=$boardSerial&type=verbose&cust=$customerNumber" http-method=put http-data=$data output=none ; | |
:delay 1s; | |
} | |
:log info "GENERATING terse export RSC"; | |
:local rscTerse ($customerNumber . "_" . $boardSerial . "_terse.rsc"); | |
/export file=$rscTerse terse show-sensitive; | |
:delay 1s; | |
:if ($sendMail = true) do={ | |
:local subject "$customerNumber - $boardSerial - rscTerse backup file"; | |
/tool/e-mail/send from=$emailUsername to=$recipient subject=$subject file=$rscTerse; | |
:delay 1s; | |
} | |
:if ($uploadFile = true) do={ | |
:local data [/file/get [/file/find name=$rscTerse] contents]; | |
/tool/fetch url="$uploadUrl?ext=rsc&id=$boardSerial&type=terse&cust=$customerNumber" http-method=put http-data=$data output=none ; | |
:delay 1s; | |
} | |
:log info "GENERATING compact export RSC"; | |
:local rscCompact ($customerNumber . "_" . $boardSerial . "_compact.rsc"); | |
/export file=$rscCompact compact show-sensitive; | |
:delay 1s; | |
:if ($sendMail = true) do={ | |
:local subject "$customerNumber - $boardSerial - rscCompact backup file"; | |
/tool/e-mail/send from=$emailUsername to=$recipient subject=$subject file=$rscCompact; | |
:delay 1s; | |
} | |
:if ($uploadFile = true) do={ | |
:local data [/file/get [/file/find name=$rscCompact] contents]; | |
/tool/fetch url="$uploadUrl?ext=rsc&id=$boardSerial&type=compact&cust=$customerNumber" http-method=put http-data=$data output=none ; | |
:delay 1s; | |
} | |
:log info "GENERATING supout.rif"; | |
:local supoutRif ($customerNumber . "_" . $boardSerial . "_suptout.rif"); | |
/system/sup-output name=$supoutRif; | |
:delay 3s; | |
:if ($sendMail = true) do={ | |
:local subject "$customerNumber - $boardSerial - supout.rif file"; | |
/tool/e-mail/send from=$emailUsername to=$recipient subject=$subject file=$supoutRif; | |
:delay 1s; | |
} | |
:if ($uploadFile = true) do={ | |
:local data [/file/get [/file/find name=$rscCompact] contents]; | |
/tool/fetch url="$uploadUrl?ext=rsc&id=$boardSerial&type=compact&cust=$customerNumber" http-method=put http-data=$data output=none ; | |
:delay 1s; | |
} | |
:log info "BACKUP FINISHED"; | |
} on-error={ | |
:log info "BACKUP Error"; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment